public class SingletonTest {
public static void main(String[] args) {
SingletonT1.getInstance();
SingletonT2.getInstance();
}
}
class SingletonT1 {
private static SingletonT1 instance = new SingletonT1();
static {
System.out.println("静态代码块1");
}
private SingletonT1 () {
System.out.println("构造方法1");
}
public static SingletonT1 getInstance() {
System.out.println("创建方法1");
return instance;
}
}
class SingletonT2 {
private static SingletonT2 instance;
static {
System.out.println("静态代码块2");
instance = new SingletonT2();
}
private SingletonT2() {
System.out.println("构造函数2");
}
public static SingletonT2 getInstance() {
System.out.println("创建方法2");
return instance;
}
}
构造方法1
静态代码块1
创建方法1
静态代码块2
构造函数2
创建方法2
以上是代码以及输出,不是说静态代码块是在构造函数之前执行的吗,为什么Singleton1是反的,小白,勿喷,真心求解