1 规律
规律一、初始化构造时,先父后子;只有在父类所有都构造完后子类才被初始化
规律二、类加载先是静态、后非静态、最后是构造函数
静态构造块、静态类属性按出现在类定义里面的先后顺序初始化,同理非静态的也是一样的,只是静态的只在加载字节码是执行一次,不管你new多少次,非静态会在new多少次就执行多少次
规律三、java中的类(内部类)只有在被用到的时候才会被加载
规律四、java类只有在类字节码被加载后才可以被构造成对象实例
2 示例代码
public class Singleton {
public static class Inner{
static {
System.out.println("TestInner Static!");
}
public final static Singleton testInstance = new Singleton(3);
}
public static Singleton getInstance(){
return Inner.testInstance;
}
public Singleton(int i ) {
System.out.println("Test " + i +" Construct! ");
}
//类静态属性
public static Singleton testOut = new Singleton(1);
//类静态块
static {
System.out.println("Test Static");
}
public static void main(String args[]){
Singleton t = new Singleton(2);
Singleton.getInstance();
}
}