public class Test { public static Test t1 = new Test();//第一步,加载静态对象t1(类加载时只执行一次)
static {
System.out.println(“静态块”);//第四步,执行静态代码块(类加载时只执行一次)
}
public Test(){
System.out.println(“构造方法”);//第三步,执行t1的构造方法
}
public void Test(){
System.out.println(“普通方法”);
}
{
System.out.println(“构造块”);第二步,执行t1的构造块
}
public static void main(String[] args)第五步,执行main方法
{
System.out.println(“main函数执行”);//第六步,在主方法中按序执行
Test t2 = new Test();//第七步,实例化对象t2,调用其构造块和构造方法
t2.Test();//第八步,调用普通方法
}
}
执行结果:
构造块
构造方法
静态块
main函数执行
构造块
构造方法
普通方法