java 单例模式 恶汉 懒汉 静态内部类 线程安全

java 单例模式 恶汉 懒汉 静态内部类 线程安全

/**

 * 
 * @Description: 恶汉(每次都会实例化)
 * @Author TT_YT
 * @Date 2018年3月3日 上午11:31:00
 */
class EHan{

private EHan(){}

private static EHan eHan = new EHan();

public static EHan getInstacen(){
return eHan;
}
}


/**
 * 
 * @Description: 懒汉(线程安全性能低)
 * volatile 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
 * @Author TT_YT
 * @Date 2018年3月3日 上午11:31:00
 */
class LHan{

private volatile static LHan lHan;

private LHan(){}

public  static LHan getInstacen(){
if(null == lHan){
synchronized(LHan.class){
if(null == lHan){
return new LHan();
}
}
}
return lHan;
}
}


/**
 * 
 * @Description: 静态内部类(JVM保证在类加载的过程中static代码块在多线程或者单线程下都正确执行,
 * 且仅执行一次。解决了延迟加载以及线程安全的问题。)
 * @Author TT_YT
 * @Date 2018年3月3日 上午11:31:00
 */
class InnerHan{

private InnerHan(){}

private static class Inner{
        private static InnerHan innerHan=new InnerHan();
    }

public static InnerHan getInstacen(){
        return Inner.innerHan;
    }

}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值