单例模式

单例模式分为饿汉式和懒汉式,区别在于懒汉式是延时加载所以线程并不是安全的,如果同时两个线程去创建单例对象这样就会造成线程安全问题,需要进行一些同步锁的操作来进行线程安全管理,而饿汉式是一种预加载的方式,保证了统一的实例不会造成线程安全问题。

饿汉式:

//在自己内部定义自己的一个实例,只供内部调用
private static final SingIn instance = new SingIn();
private SingIn(){}
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static SingIn getInstance(){
    return instance;
}

懒汉式:

private static SingIn instance = null; 
public static synchronized SingIn getInstance() {         
// 这个方法比上面有所改进,不用每次都进行生成对象,只是第一次  
// 使用时生成实例,提高了效率!  
   if (instance == null)  
        instance = new SingIn();  
   return instance;  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容