zoukankan      html  css  js  c++  java
  • Java singleton 单例

    饿汉式,instance在类加载化时完成初始化,线程安全

    package cookie;
    
    public class SingletonAtOnce {
        private SingletonAtOnce() {
        }
    
        private static final SingletonAtOnce instance = new SingletonAtOnce();
    
        public static SingletonAtOnce getInstance() {
            return instance;
        }
    }

    懒汉式,双锁检查机制保证线程安全

    package cookie;
    
    public class SingletonDCL {
        private SingletonDCL() {
        }
    
        private static volatile SingletonDCL instance;
    
        public static SingletonDCL getInstance() {
            if (instance == null) {
                synchronized (SingletonDCL.class) {
                    if (instance == null) {
                        instance = new SingletonDCL();
                    }
                }
            }
            return instance;
        }
    }

    私有内部类持有,也属于懒汉式,读ClassHolder中的instance时,导致ClassHolder加载,加载时完成instance的初始化,线程安全

    package cookie;
    
    public class SingletonClassHolder {
        private SingletonClassHolder() {
        }
    
        private static class Holder {
            public static SingletonClassHolder instance = new SingletonClassHolder();
        }
    
        public static SingletonClassHolder getInstance() {
            return Holder.instance;
        }
    }
  • 相关阅读:
    Linux 查看内存状态
    Linux sar工具安装使用
    DNS ARP地址解析原理
    TCP/UDP 端口
    TCP/IP 传输原理
    Window vagrant 安装部署【转】
    Window7下vagrant的部署
    Ubuntu下访问SSH
    使用 Vagrant 打造跨平台开发环境
    Vagrant入门[转]
  • 原文地址:https://www.cnblogs.com/chenhuanBlogs/p/7659768.html
Copyright © 2011-2022 走看看