A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小脚印 中级黑马   /  2014-3-8 11:36  /  804 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

终于知道什么是饿汉式和懒汉式了~~

  1. //饿汉式
  2. class Single{
  3.         private static Single s=new Single();
  4.         private Single(){
  5.                
  6.         }
  7.         public static Single getSingle(){
  8.                 return s;
  9.         }
  10. }
  11. //懒汉式
  12. class Single(){
  13.         private static Single s=null;
  14.         private Single(){
  15.                
  16.         }
  17.         public static Single getSingle(){
  18.                 if(s==null){
  19.                         s=new Single();
  20.                 }
  21.                 return s;
  22.         }
  23. }
  24. //优化后的懒汉式,很好的解决了多线程的问题
  25. class Single(){
  26.         private static Single s=null;
  27.         private Single(){
  28.                
  29.         }
  30.         public static Single getSingle(){
  31.                 if(s==null){
  32.                         synchronized(Single.class);
  33.                         if(s==null){
  34.                                 s=new Single();
  35.                         }
  36.                 }
  37.                 return s;
  38.         }
  39. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

2 个回复

倒序浏览
饿汉式 我记得还可以加个final

  1. //饿汉式
  2. class Single{
  3.       private static final Single s=new Single();
  4.       private Single(){
  5.               
  6.       }
  7.       public static Single getSingle(){
  8.               return s;
  9.       }
  10. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
osully 发表于 2014-3-8 12:03
饿汉式 我记得还可以加个final

给力,这个更严谨
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马