Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Java 构造器有哪些关键特性?

查看完整题解

参考回答

直接回答

构造器与类同名,没有返回类型,负责建立新实例的初始状态,可以重载但不能继承或重写。普通类未声明任何构造器时,编译器才会提供默认构造器。Java 21 中,显式的 this 或 super 构造器调用必须在构造器体第一条语句,构造链不能循环。

讲清原理

父类部分、当前类的实例字段及初始化块、构造器体有明确的执行规则。通过 this 委托到本类另一个构造器时,不会因此为同一个实例重新分配一遍全部字段,也不应重复执行同一层的实例初始化。

构造器不能声明为 static、abstract 或 synchronized。构造期间也不宜泄露 this,或调用可能触达尚未初始化子类状态的可重写方法。

构造器逐层委托,父类实例部分先完成,再执行子类初始化与构造器体
构造器逐层委托,父类实例部分先完成,再执行子类初始化与构造器体

例子与易错点

class Item {
    Item() { this(2); System.out.println("无参体"); }
    Item(int n) { System.out.println("带参体 " + n); }
}
new Item(); // 先 带参体 2,再 无参体

在构造器中写 return; 可以提前正常结束,但不能返回一个表达式。枚举、record 等特殊类还有各自的构造规则;回答普通类时,不应承诺所有类型都自动有可公开调用的无参构造器。

相关题:第 7 题、第 27 题、第 29 题、第 39 题、第 42 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。