当我们执行className object = new ClassName()
时候代码执行的顺序为何?
一、非继承状态下
1.无静态变量
1.1——
public class OrderTest {
public OrderTest(){
System.out.println("构造器被调用");
}
private int num = init();
{
System.out.println("代码块被调用");
}
private int init() {
System.out.println("变量赋值");
return 5;
}
public static void main(String[] args) {
new OrderTest();
}
}
打印结果——:
变量赋值
代码块被调用
构造器被调用
1.2 将构造代码块与变量定义交换位置——
public OrderTest(){
System.out.println("构造器被调用");
}
{
num = 6;
System.out.println("代码块被调用");
}
private int num = init();
private int init() {
System.out.println("变量赋值");
r