java单例设计模式 饿汉式 懒汉式

class DLMODETest
{
 public static void main(String[] args)
 {
  new DLTest().show();
  
  System.out.println(Single2.getInstance());
 }
}

class DLTest
{
 static DLTest t = new DLTest();
 public void show()
 {
  System.out.println("单例设计模式测试!");
 }
}


区别:
1,类加载时
饿汉式:直接在内存中建立对象.
懒汉式:只建立引用。并未创建对象。

2,多线程并发时:懒汉式会出现安全问题。
为了保证对象的唯一,需要加入一个关键字:synchronized,但是该关键字会降低效率.
所以建议使用饿汉式。

class Single1  //饿汉式单例
{
 private static Single1 s = new Single1();
 private Single1(){};
 public static Single1 getInstance()
 {
  return s;
 }
}

class Single2  //懒汉式单例
{
 private static Single2 s = null;
 private Single2(){};
 public static synchronized Single2 getInstance()
 {
  if (s == null)
  {
   s = new Single2();
  }
  return s;
 }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值