黑马程序员技术交流社区

标题: 单例中懒汉式的用途 [打印本页]

作者: 陈小红    时间: 2012-10-31 00:07
标题: 单例中懒汉式的用途
    单例模式中懒汉式相对饿汉式既复杂又不安全,它的产生是因为了可能节省资源吗?存在即合理。如果不是,它为何会存在?
作者: 马振兴    时间: 2012-10-31 00:54
懒汉式的优势是延迟加载。

可以使用新的单例延迟加载方式,不存在线程安全问题。

使用静态内部类持有外部类的实例,使用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());
    }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2