1、类中的属性是按照先初始化static变量然后,顺序依次初始化其它非静态的:
class Test
{
public static void main(String[]args)
{
NoName noName=new NoName();
System.out.println("-----------------------------");
NoName noName1=new NoName();
}
}
class T{
T(int order){
System.out.println("order: "+order);
}
}
class NoName{
T t1=new T(1);
NoName(){
System.out.println("Noname");
t3=new T(33);
}
T t2=new T(2);
void f(){
System.out.println("f()");
}
T t3=new T(3);
static T t4=new T(4);
}
输出结果:
order: 4
order: 1
order: 2
order: 3
Noname
order: 33
-----------------------------
order: 1
order: 2
order: 3
Noname
order: 33
Process finished with exit code 0
说明:这里先初始化t4,并且只是被初始化了一次,然后t1、t2、t3是依次初始化, 并且t3被初始化了4次,分两次定义NoName的变量时,每次中第一次是在调用构造函数之前, 第二次是调用构造函数的时候。
2、无论创建多少对象同一个static变量只会被创建一次