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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Faith- 中级黑马   /  2014-8-6 22:22  /  2404 人查看  /  22 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

懒汉式和饿汉式到底有什么作用啊,大神们谁能用大白话解释一下

22 个回复

倒序浏览
懒汉式就是不调用getInstance()方法就不会产生对象,而饿汉式就是类一加载就产生了对象。至于作用,就是懒汉式可以控制对象的产生时间。更多的作用会在以后的学习中才能更深的理解吧。这就是我目前的理解。。。
回复 使用道具 举报
最简单的就是配置文件了,只能有一个配置文件!不能说你搞一堆吧,那倒是你加载哪个?如何判断?让配置文件只有一个是最明智的选择。。。
回复 使用道具 举报
{:3_53:}!!!!爸爸妈妈生孩子。总不能生一大堆吧!!{:3_54:} 我发现开玩笑开过了
回复 使用道具 举报
单例模式   一个类只能创建一个对象   我不让你创建对象  我自己创建一个 给你提供使用方法
回复 使用道具 举报
世界上只有一个你,不能有另外一个你
回复 使用道具 举报
懒汉式用于面试,饿汉式用于开发。
回复 使用道具 举报
在一个类出现一个实例对象的时候我们就用用单例设计的这种模式,而这两种是单例模式的两种实现方法。其中懒汉式在多线程下具有不安全的因素
回复 使用道具 举报
pray 高级黑马 2014-8-7 10:24:29
9#
单例模式   一个类只能创建一个对象   我不让你创建对象  我自己创建一个 给你提供使用方法
回复 使用道具 举报
听说饿汉式可以延迟加载
回复 使用道具 举报
路过的。。。
回复 使用道具 举报
  1. /*
  2. 单例设计模式:解决一个类在内存中只有一个对象
  3. 多个程序使用统一配置信息对象时,需要保证该对对象的唯一性。

  4. 保证对象唯一性的实现步骤:

  5. 1.将构造函数私有化:为了避免其他程序过多建立该对象,禁止其他程序调用该对象。
  6. 2.在类中创建一个本类对象:为了让其他程序可以访问该类对象
  7. 3.提供一个方法可以获取到该对象的方法:方便其他程序访问自定义的本类对象。
  8. */
  9. 饿汉式:一进内存 就创建了对象
  10. class single{
  11.         
  12.         private single(){}1.将构造函数私有化
  13.         private static single s=new single();2.在类中创建一个本类对象
  14.         public static single getInstance(){3.提供一个方法可以获取到该对象的方法
  15.                 return s;
  16.         }
  17. }


  18. public class SingleDemo {
  19.         

  20.         public static void main(String[] args) {
  21.                
  22.                 single ss=single.getInstance();
  23.         }

  24. }


  25. 懒汉式:什么时候调用什么时候创建对象,对象的延时加载
  26. class single{
  27.         
  28.         private single(){}
  29.         private static single s=null;
  30.         public static single getInstance(){
  31.              if(s==null){
  32.                  synchronized(Single.class)//同步锁
  33.                    {
  34.                         if (s==null){
  35.                                 s=single.getInstance();
  36.                         }
  37.                     }
  38.               }
  39.                  return s;
  40.         }
  41. }


  42. public class SingleDemo {
  43.         

  44.         public static void main(String[] args) {
  45.                
  46.            single ss=single.getInstance()
  47.         }
复制代码
回复 使用道具 举报
就是单例设计模式啊,只想要一个对象操作同一个对象里面的属性,就要用到单例设计模式,单例设计模式中就有饿汉式和懒汉式的区别,这样的
回复 使用道具 举报
省内存的做法
回复 使用道具 举报
单例模式   一个类只能创建一个对象   我不让你创建对象  我自己创建一个 给你提供使用方法
回复 使用道具 举报
等你使用几次就懂了
回复 使用道具 举报
在线程同步中,懒汉式容易出现线程安全问题。
回复 使用道具 举报
懒汉式和饿汉式的目的就是要求建立的对象是唯一的,举个最简单的例子,可乐,不管我们在中国买的**可乐,还是美国买的**可乐味道都是一样的,那么生产商只有在出厂前将可乐生产好,才能保证这个要求。而不像咖啡一样,会根据个人喜好,自己能挑出不同的口味来。
回复 使用道具 举报
配置文件时候用
回复 使用道具 举报
作用其实就是保证对象的唯一性,,, 饿汉式真实开发比较常用,因为上来就new对象,  而懒汉式需要调用方法的时候再new对象,,也成为延时加载,面试经常问到,,,但是延时加载比较节省内存空间,,,什么时候用什么时候new
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马