情况一
public class Test {
Test() {
System.out.println("构造函数");
}
public void run() {
{
System.out.println("普通代码块1");
}
System.out.println("run方法");
{
System.out.println("普通代码块2");
}
}
}
run调用时顺序执行:
普通代码块1
run方法
普通代码块2
情况二
public class Test {
Test() {
System.out.println("构造函数");
}
{
System.out.println("构造代码块1");
}
{
System.out.println("构造代码块2");
}
}
新建对象时调用顺序:
构造代码块1
构造代码块2
构造函数
情况三
public class Test {
Test() {
System.out.println("构造函数");
}
{
System.out.println("构造代码块");
}
static{
System.out.println("静态代码块");
}
}
新建对象时调用顺序:
静态代码块
构造代码块
构造函数