zoukankan      html  css  js  c++  java
  • 设计模式——单例

    什么是单例

    一个类只有一个对象实例

    为什么要用到单例

    单例怎么实现

    1,不让其他程序new该类对象,将类中的构造函数私有化。
    2,在本类中创建一个对象。
    3,定义一个方法返回该对象
    代码实现:

    public class Singleton {
    
        //创建一个本类对象
        private static final Singleton singleton = new Singleton();
        
        //构造函数私有化
        private Singleton(){}
        
        //定义一个静态方法返回该对象,让程序可以获取。
        public static Singleton getInstance(){
         
            return singleton;
        }
    

    懒汉式与饿汉式的区别

    懒汉式:类一加载对象就已经存在
    饿汉式:类加载进来没有对象,只有调用了getInstance方法时,才会建立对象
    延迟加载模式

    在多线程访问时会出现线程安全问题。
    加了同步可以解决问题,但是降低效率。

    代码体现:
    饿汉式

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

    懒汉式

    public class Singleton {
    
        private static  Singleton singleton ;
    
        private Singleton(){}
    
        public static Singleton getInstance(){
            
            if(singleton == null){
                synchronized (Singleton.class){
                    if(singleton == null){
                        singleton = new Singleton();
                    }
                }
            }
            return singleton;
        }
    
  • 相关阅读:
    CentOS 6.10 安装mysql
    yum安装no more mirrors to try
    mysql密码问题
    tomcat的安装部署(CentOS8)(VM)
    tomcat的安装部署(windows10)
    docker中mongdb常用操作
    iphone手机卡顿解决方案
    常用sql进阶语句
    关键时刻,让你的iphone拒绝掉的所有来电
    jenkins环境安装(windows)
  • 原文地址:https://www.cnblogs.com/gloria-liu/p/8463740.html
Copyright © 2011-2022 走看看