这2天在看Think in Java ,整理一下学到的内容。
类初始化的顺序:1.静态变量 2.普通变量 3.构造函数。
其中,静态块等同于静态变量,普遍块等同于普通变量。
多个静态变量或者静态块的情况下,按照从上到下的顺序生成,普通变量也是一样,不过,静态的只生成一次。
对于数组,声明时不会有初始化发生。
public class T1 {
public T1(String v){
System.out.println("T1 v=" + v);
}
}
public class T2 {
static{
t1 = new T1("5");
}
{
t3 = new T1("6");
}
public T2(String v){
System.out.println("T2 v=" + v);
}
static T1 t1 = new T1("1");
static T1 t2 = new T1("2");
T1 t3 = new T1("3");
T1 t4 = new T1("4");
public static void main(String[] args){
T2 t = new T2("t2-1");
T2 t1 = new T2("t2-2");
T2[] t3 = new T2[3];
}
}
执行结果
T1 v=5
T1 v=1
T1 v=2
T1 v=6
T1 v=3
T1 v=4
T2 v=t2-1
T1 v=6
T1 v=3
T1 v=4
T2 v=t2-2