核心Java面试问题和答案(二)
面试问题和答案 核心Java(二)
I final关键字是什么?
final关键字用于类,以确保没有其他类可以扩展它,例如String类是final的,我们不能扩展它。
我们可以使用final关键字和方法来确保子类不能覆盖它。
最终关键字可以与变量一起使用,以确保只分配一次。
然而,变量的状态可以改变,例如,我们可以只给对象分配一个最终变量,但是对象变量可以稍后更改。
Java接口变量默认是final和静态的。
II静态关键字是什么?
静态关键字可以与类级变量一起使用,使其成为全局变量。
所有的对象都将共享同一个变量。
静态关键字也可以与方法一起使用。
静态方法只能访问类的静态变量,并且只调用类的静态方法。
JAVA/259.html"> 详细阅读java静态关键字。
III在java中最后什么是最后确定的?
最后块使用try-catch来执行你想要一直执行的代码,即使try-catch块抛出了异常。
最后,块主要用于释放try块中创建的资源。
finalize()是对象类中的一种特殊方法,我们可以在类中覆盖它。
当对象被垃圾收集时,垃圾收集器将调用这个方法。
当对象被垃圾收集时,这个方法通常被覆盖到释放系统资源。
IV 我们可以声明一个类是静态的吗?
我们不能声明一个顶级类是静态的,但是内部类可以声明为静态的。
如果内部类被声明为静态的,则称为静态嵌套类。
静态嵌套类与任何其他顶级类相同,并且嵌套仅用于包装方便。
V 静态导入是什么
如果我们必须使用其他类的静态变量或方法,通常我们会导入类,然后使用类名的方法/变量。
import java.lang.Math;
//inside class
double test = Math.PI * 5;
我们可以只导入静态方法或变量,然后在类中使用它,就像它属于它一样。
import static java.lang.Math.PI;
//no need to refer class now
double test = PI * 5;
使用静态导入会造成混乱,所以最好避免使用它。
过度使用静态导入会使您的程序不可读和不可维护。
VI java中的资源
Java 7的特性之一是用于自动资源管理的try-withresource语句。
在Java 7之前,没有自动资源管理,我们应该明确地关闭资源。
通常,它是在一个try-catch语句的最后一个块中完成的。
当我们忘记关闭资源时,这种方法会导致内存泄漏。
从Java 7中,我们可以在try块中创建资源并使用它。
Java一旦完成,就会立即关闭它。
更多地阅读Java自动资源管理。
VII 什么是java中的多catch块?
Java 7的改进之一是多catch块,我们可以在一个catch块中捕获多个异常。
当每个catch块都有类似的代码时,这使得代码更简洁、更干净。
如果catch块处理多个异常,您可以使用管道()将它们分开,在这种情况下,异常参数(ex)是final的,因此您不能更改它。
读取更多信息在Java多catch块中。
VIII 静态块是什么?
Java静态块是由Java类加载器加载到内存中执行的语句组。
它用于初始化类的静态变量。
在加载类时,它主要用于创建静态资源。
IX 什么是接口?
接口是java编程语言的核心部分,不仅在JDK中使用,而且在java设计模式、大多数框架和工具中都使用了很多。
接口提供了一种实现java抽象的方法,并用于定义要实现的子类的契约。
接口对于在代码中定义类型和创建顶级层次结构是很好的。
由于java类可以实现多个接口,所以最好在大多数情况下使用接口作为超类。
更多地阅读java接口。
X什么是抽象类?
在java中使用抽象类来创建一个类,为子类提供一些默认的方法实现。
抽象类可以有抽象的方法而不需要主体,它也可以有实现的方法。
抽象关键字用于创建一个抽象类。
抽象类不能被实例化,主要用于为子类提供基础,以扩展和实现抽象方法,并在抽象类中重写或使用实现的方法。
XI抽象类和接口的区别是什么?
抽象关键字用于创建抽象类,而接口是接口的关键字。
抽象类可以有方法实现,而接口不能。
一个类只能扩展一个抽象类,但它可以实现多个接口。
如果有main()方法,我们就可以运行抽象类,而我们不能运行一个接口。
在抽象类和接口之间,还有一些细节上的差异。
XII接口能实现或扩展另一个接口吗?
接口没有实现另一个接口,它们扩展了接口。
由于接口不能有方法实现,所以没有钻石问题的问题。
这就是我们在接口i中有多重继承的原因。
一个接口可以扩展多个接口。
从Java 8开始,接口可以有默认的方法实现。
因此,当一个常见的默认方法出现在多个接口时,为了处理钻石问题,必须在实现它们的类中提供方法的实现。
XIII 标记接口是什么?
一个标记接口是一个没有任何方法的空接口,但是使用Java来强制实现类的一些功能。
一些著名的标记接口是可序列化和可克隆的。
XIV包装器类是什么?
Java包装器类是Java中8种基本类型的对象表示。
java中的所有包装类都是不可变的和最终的。
Java 5自动装箱和非装箱允许在原始类型和相应的包装器类之间进行简单的转换。
XV 什么是Java中的Enum?
在Java 1.5中引入Enum作为一种新的类型,其字段由固定的常量集组成。
例如,在Java中,我们可以创建带固定字段的枚举,如东部、西部、北部、南部。
enum是创建enum类型和类的关键字。
Enum常量是隐式静态和final的。
http://www.itemperor.com/a/JAVA/256.html
原文链接:http://www.jxszl.com/biancheng/JAVA/446608.html