zoukankan      html  css  js  c++  java
  • Java三种单例模式实现

    一、 饿汉式
    
    public class SingletonHungry{
    
    //构造器私有化,防止外部调用
    private SingletonHungry(){
    }
    //类初始化时立即加载(感觉很饿),没有延时加载的优势,线程安全
    private static SingletonHungry instance = new SingletonHungry();
    //供外部调用,没有同步,效率高
    public static SingletonHungry getInstance(){ return instance; } }

    二、懒汉式

    public class SingletonLazy{

    private SingleLazy(){
    }
    //类初始化时,只声明一个对象,但不初始化对象
    private static SingletonLazy instance;

    //加了同步来保证只创建一个对象,但也造成了效率低的问题,线程安全
    public static synchronized SingletonLazy getInstance(){
    if(instance==null){
    instance = new
    SingletonLazy();
    }
    return instance
    }
    }

    三、静态内部类式【比前两种更优,推荐】

    public class SingletonStaticClass{
    
    private SingletonStaticClass{
    }
    //只有在用到内部类的静态属性时才会被加载,可以延时加载
    private static class SingletonClass{
    private static final SingletonStaticClass instance = new SingletonStaticClass();
    }
    
    //方法没有同步,效率高
    public static SingletonStaticClass getInstance{ return SingletonClass.instance; } }
    [ 版权声明 ]: 本文所有权归作者本人,文中参考的部分已经做了标记! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
  • 相关阅读:
    61组第二次团队作业
    饮水机电路图工作原理及电路图分析
    七种基础模拟电路的用法
    C语言判断一个数是奇数还是偶数
    F28335 UART串口配置及数据发送
    F28335 SPI配置及收发数据
    电容的九大功能
    查询接口---flask+python+mysql
    python参数传递
    java基础
  • 原文地址:https://www.cnblogs.com/gslgb/p/14634599.html
Copyright © 2011-2022 走看看