您当前的位置: 首页 > 

【03】

暂无认证

  • 3浏览

    0关注

    196博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

单例设计模式、懒汉饿汉

【03】 发布时间:2020-07-17 10:05:20 ,浏览量:3

单例设计模式
  1. 就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例
  • 测试类
public class Pattern1 {
   public static void main(String[] args){
       Bank bank1 = Bank.getInstance();
       Bank bank2 = Bank.getInstance();
        System.out.println(bank1 == bank2); // true

       Bank2 bank3 = Bank2.getInstance();
       Bank2 bank4 = Bank2.getInstance();
       System.out.println(bank3 == bank4); // true
   }
}
  • 饿汉式-类加载的时候实例化
class Bank{
   // 1. 私有化类的构造器
   private Bank(){
   }
   // 2. 内部创建类对象
   // 4.静态方法只能调静态变量 所以声明为静态
   private static Bank instance = new Bank();
   // 3.提供公共的静态方法,返回类对象
   public static Bank getInstance(){
       return instance;
   }
}
  • 懒汉式-使用的时候实例化
class Bank2{
   // 1. 私有化类的构造器
   private Bank2(){

   }
   // 2. 内部创建类对象-没有初始化
   // 4.静态方法只能调静态变量 所以声明为静态
   private static Bank2 instance = null;
   // 3.提供公共的静态方法,返回类对象
   public static Bank2 getInstance(){
       if (instance==null)
       instance = new Bank2();
       return instance;
   }
}
两种方式的比较
  • 饿汉式:
    •   优:线程安全
      
    •   缺:对象加载时间过长
      
  • 懒汉式:
    •   优:延迟对象创建,不用不创建
      
    •   缺:线程不安全->加线程锁
      

懒汉式优化:使用同步机制将单例模式中的懒汉式改写为线程安全的

关注
打赏
1657344724
查看更多评论
立即登录/注册

微信扫码登录

0.0373s