package test;
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
Singal singal=Singal.getInstance();
System.out.println("-------------");
}
}
}
package test;
public class Singal {
public Singal() {
System.out.println("Test");
}
public static Singal getInstance(){
System.out.println("getInstance");
return innerClass.test;
// return null;
}
static class innerClass{
static{
System.out.println("innerClass static");
}
public static Singal test=new Singal();
}
}
getInstance
innerClass static
Test
-------------
getInstance
-------------
getInstance
-------------
getInstance
-------------
getInstance
-------------
分析静态内部类 不是类加载的时候就被调用,而是在调用的时候才加载静态类属性,