美文网首页
2019-12-03

2019-12-03

作者: 想去读个博 | 来源:发表于2019-12-03 14:18 被阅读0次

单例模式
简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。
getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。单例模式实现起来也很容易,直接看demo吧
懒汉写法(线程不安全)

public class Singleton {

private static Singleton singleton;

private Singleton() {
}

public static Singleton getInstance() {
 if (singleton == null) {
  singleton = new Singleton();
 }
 return singleton;
 }
}

饿汉式写法

public class Singleton {  
   private static Singleton instance = new Singleton();  
   private Singleton (){}  
   public static Singleton getInstance() {  
   return instance;  
   }  
}

静态内部类


public class Singleton {  
   private static class SingletonHolder {  
   private static final Singleton INSTANCE = new Singleton();  
   }  
   private Singleton (){}  
   public static final Singleton getInstance() {  
   return SingletonHolder.INSTANCE;  
   }  
}

枚举

public enum Singleton {  
   INSTANCE;  
   public void whateverMethod() {  
   }  
}
它不仅能避免多线程同步问题,而且还能防止反序列化重新创建新的对象,可谓是很坚强的壁垒啊

双重校验锁

public class Singleton {  
   private volatile static Singleton singleton;  
   private Singleton (){}  
   public static Singleton getSingleton() {  
   if (singleton == null) {  
       synchronized (Singleton.class) {  
       if (singleton == null) {  
           singleton = new Singleton();  
       }  
       }  
   }  
   return singleton;  
   }  
}

相关文章

  • 诗 冬

    2019-12-03 冬 寒冷 ...

  • Mr. L 的ScalersTalk第五轮《新概念》朗读持续力训

    2019-12-03, starting at 2019-10-11 新概念英语第二册 Lesson 54: St...

  • Frank,我还想活着

    Time: 2019-12-03 从朋友推荐美版《无耻家庭》,英文原文《Shameless》开始,就一直很喜欢这部...

  • 文先森的日常--剩10天

    日精进打卡第456天 姓名:李文杰 (四爷); 公司:中国太平人寿; 日期:2019-12-03 【知~学习】 《...

  • 2019-12-04

    2019-12-03 【日精进打卡第 619 天 【知~学习】 《六项精进》大纲 4 遍共 2332 遍 《大学》...

  • 2019-12-03

    2019-12-03 关于痤疮: 个人整理的祛痘思路: (1)激素诱导的皮脂分泌:控制/抑制油脂分泌是关键,轻度痤...

  • 不开心的最后一次12.3

    似乎知道为什么,都是误解,没有人比我更了解“何不食肉糜” R666666 chenyu 2019-12-03 21...

  • 2019-12-03

    2019-12-03 日精进打卡 姓名:彭新 宁波蓝天白云供应链管理有限公司 【日精进打卡第613天】 【知~学习...

  • 2019-12-03 - 草稿

    2019-12-03 打卡人:王素琴 公司:阜阳市豹子头服饰科技有限公司【日精进打卡第578天 【知~学习】 公司...

  • 2019-12-03

    2019-12-03 扬州市方圆建筑工程有限公司 377期利他2组 【日精进打卡第596天】 【知~背诵】 《六项...

网友评论

      本文标题:2019-12-03

      本文链接:https://www.haomeiwen.com/subject/ijpcgctx.html