面试题:关于静态块、构造块、构造函数、普通代码块的优先级问题
- 静态块:的优先级最高,伴随类的加载而加载,且只会加载一次
- 构造块:即成员代码块(写在类体中的代码块),优先级次于静态块,高于构造函数,且每次创建新对象都会执行
- 构造函数:优先级次于静态块、构造块,每次创建新对象都会调用
- 普通快:最没地位,优先级最低
总结: 静态块 > 构造块 > 构造函数 > 普通快
看下面一段代码,了解在继承关系中,四者的优先级及调用顺序
父类
public class Father {
// 构造函数(父类)
public Father() {
System.out.println("Father constructor...");
fatherTest()