我个人遇到的一些高质量面试题
# 1、JVM的类初始化过程
public class SuperClass {
static {
System.out.println("SuperClass init");
}
static int value = 123;
}
class SubClass extends SuperClass {
static {
System.out.println("SubClass init");
}
// 但如果子类重写父类的value,那么打印就不一样了,因为子类初始化前,一定要先初始化父类,
// static int value = 456;
}
class Test {
public static void main(String[] args) {
//
System.out.println(SubClass.value);
}
}
/**
* 输出:
* <p>
* SuperClass init
* 123
* <p>
* 只有直接定义这个字段的类才会被初始化
* <p>
* 但如果子类重写父类的value,那么打印就不一样了,因为子类初始化前,一定要先初始化父类,
*/
上次更新: 2024-05-23 10:33:15