您的位置:首页 > 编程语言 > Java开发

最安全的单例模式--java使用内部类实现单例模式

2016-10-10 12:57 483 查看
实现类

public class Singleton {

    private static class LazyHolder {    

       private static final Singleton INSTANCE = new Singleton();    

     }    

     private Singleton (){}    

     public static final Singleton getInstance() {    

        return LazyHolder.INSTANCE;    

     } 
}

测试

public class Test {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Singleton singleton1 = Singleton.getInstance();

        Singleton singleton2 = Singleton.getInstance();

        if (singleton1 == singleton2)

            System.out.println("same");

    }

}

说明

单例模式实现方式有好多种,但大部分都会有多线程环境下的问题;使用内部类可以避免这个问题,因为在多线程环境下,jvm对一个类的初始化会做限制,同一时间只会允许一个线程去初始化一个类,这样就从虚拟机层面避免了大部分单例实现的问题,可以尝试下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐