zoukankan      html  css  js  c++  java
  • 多线程模式下的单例模式(饥汉模式和饿汉模式的简单区别)

    单例模式的要素:
    1.私有的静态的实例对象
    2.私有的构造函数(保证在该类外部,无法通过new的方式来创建对象实例)
    3.公有的、静态的、访问该实例对象的方法

    1.饿汉模式:

    public class Singleton1 {  
          
        private static Singleton1 singleton = new Singleton1();  
          
        private Singleton1(){  
              
        }  
          
        public static Singleton1 getInstance(){  
            return singleton;  
        } 
    } 
    

       优点:线程安全、绝对单例.

      缺点:在多实例或者有其他静态方法时,在启动时没有使用它的时候就已经加载好了,浪费内存。

    2.懒汉模式:

    public class Singleton2 {  
      
        private static Singleton2 singleton;  
          
        private Singleton2(){  
              
        }  
          
        public static synchronized Singleton2 getInstance(){  
            if(singleton == null)   
                singleton = new Singleton2();  
            return singleton;  
        }  
    }  
    

      优点:在没有使用时不用加载,节省内存。

        缺点:线程不安全,能防止反序列化、反射产生新的实例。

  • 相关阅读:
    第五周总结
    第四周总结
    第三周总结
    开课博客
    学习进度
    个人作业1-数组
    数组
    第一周考试总结
    团队个人冲刺第六天
    团队个人冲刺第五天
  • 原文地址:https://www.cnblogs.com/zhangyi0331/p/8510831.html
Copyright © 2011-2022 走看看