懒汉式的优势是延迟加载。
可以使用新的单例延迟加载方式,不存在线程安全问题。
使用静态内部类持有外部类的实例,使用jvm的类载入机制保证单例模式在多线程环境下的正确加载
public class Test {
static {
System.out.println("我是用来做测试的,传统的单例模式会在这个时机被实例化");
}
public static Test getInstance() {
return TestInstance.getInstance();
}
private Test() {
System.out.println("oh! test");
}
private static class TestInstance {
private static Test instance = new Test();
private TestInstance() {
}
private static Test getInstance() {
return instance;
}
};
public static void main(String[] args) {
System.out.println(Test.class);
System.out.println("========================");
System.out.println(Test.getInstance());
}
} |