java类的生命周期测试
java
public class Test1 {
public static void main(String[] args) {
System.out.println("A");
new Test1();
new Test1();
}
public Test1() {
System.out.println("B");
}
{
System.out.println("C");
}
static {
System.out.println("D");
}
}1. 类加载阶段(只执行一次静态代码块)
当 Java 程序启动时,Test1 类被加载到内存,静态代码块会立即执行。
java
static {
System.out.println("D");
}输出: D
2. 执行 main 方法
java
public static void main(String[] args) {
System.out.println("A");
...
}输出: A
3. 创建第一个 Test1 对象
java
new Test1();创建对象时,按顺序执行:
- 实例初始化块(非静态代码块)
- 构造方法
java
{
System.out.println("C");
}
public Test1() {
System.out.println("B");
}所以先输出 C,再输出 B。
输出: C B
4. 创建第二个 Test1 对象
java
new Test1();同样执行:
- 实例初始化块 →
C - 构造方法 →
B
输出: C B
5. 最终输出顺序
D
A
C
B
C
B