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

    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReentrantLock;
    
    /**
     * 单例模式
     * 要点:私有化构造函数
     *         对象为类的属性
     */
    public class Singleton {
        public static void main(String[] args) {
            //可以用对象方法
            Singleton_01 singleton_01 = Singleton_01.getSingleton_01();
            //直接用类的方法
            Singleton_01.doSomething();
        }
    }
    //饿汉,线程安全
    class Singleton_01{
        private Singleton_01(){}//1.私有化,不让外部创建
        private static Singleton_01 singleton_01 = new Singleton_01();//2.类加载的时候就创建
        //必须为静态哇,不然外面调不了
        public static Singleton_01 getSingleton_01(){
            return singleton_01;
        }
        //类中其他方法,尽量是static,类方法,与对象没啥关系
        public static void doSomething(){
        }
    }
    //懒,线程有隐患,用个加锁解决吧
    class Singleton_02{
        static Lock lock = new ReentrantLock();
        private Singleton_02(){}
        private static Singleton_02 singleton_02 = null;
        public static Singleton_02 getSingleton_02(){
            lock.lock();
            //线程同时卡在这儿的话,会进入再次创建
            if (singleton_02 == null) {
                singleton_02 = new Singleton_02();
            }
            lock.unlock();
            return singleton_02;
        }
    }
    //双重加锁,当已经创建过实例对象后就无需加锁,提高效率
    class Singleton_03 {
        private Singleton_03(){}
        private static Singleton_03 singleton;
    
        public static Singleton_03 getInstance(){
            if(singleton == null){
                synchronized(Singleton_03.class){
                    if(singleton == null){
                        singleton = new Singleton_03();
                    }
                }
            }
            return singleton;
        }
    }
    
    
    
     
  • 相关阅读:
    scroll-behavior 让滚动更顺滑
    CSS3实现类似装订(缝纫)效果
    hadoop伪分布安装
    开始hadoop
    Boostrap 模态框 水平垂直居中问题
    ASP.NET MVC 下 引用阿里巴巴和IconFont字体路径404问题
    ajax 初始化请求前携带参数
    边框圆角方法
    DIV 清除样式浮动万能代码
    ASP.NET MVC 增强Convert用法+【分页2】
  • 原文地址:https://www.cnblogs.com/fengdaren/p/8832932.html
Copyright © 2011-2022 走看看