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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linder_qzy 中级黑马   /  2015-3-8 19:08  /  883 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

饿汉模式和懒汉模式的主要区别在于饿汉模式是后创建对象。
实际中建议使用这种饿汉模式,因为其需要才创建的特性使得系统节省资源
  1. class Single  
  2. {  
  3.     private int num;  
  4.     public void setNum(int num){  
  5.         this.num=num;  
  6.     }  
  7.     public int getNum(){  
  8.         return num;  
  9.     }  
  10.     //第一步:私有构造器禁止其他程序建立  
  11.     private Single(){}  
  12.     //第二部:在类中自己建立该对象  
  13.     private static Single s = new Single();  
  14.     //第三部:提供访问方式用来给其他程序定义该对象  
  15.     public static Single getInstance(){  
  16.         return s;  
  17.     }  
  18. }  
  19. class SingleDemo  
  20.   
  21. {  
  22.     public static void main(String[] args)   
  23.     {  
  24.         //无论得到多少Single对象都是同一个内存地址指向同一个对象  
  25.         Single s1 = Single.getInstance();  
  26.         Single s2 = Single.getInstance();  
  27.         s1.setNum(14);  
  28.         int num = s2.getNum();  
  29.         System.out.println("num="+num);  
  30.     }  
  31. }  
复制代码

2 个回复

倒序浏览
懒汉式是后创建吧,懒汉式创建对象不加synchronized不安全,所以建议使用饿汉式
回复 使用道具 举报
懒汉式特点在于实例的延迟加载,如果多线程访问会出现安全问题——加同步来解决(同步代码块和同步函数都行,有些低效)
视频中毕老师说:实际开发使用饿汉式,而面试会考懒汉式
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马