黑马程序员技术交流社区

标题: 懒汉式和饿汉式 [打印本页]

作者: Faith-    时间: 2014-8-6 22:22
标题: 懒汉式和饿汉式
懒汉式和饿汉式到底有什么作用啊,大神们谁能用大白话解释一下
作者: 叶飞翔    时间: 2014-8-6 22:29
懒汉式就是不调用getInstance()方法就不会产生对象,而饿汉式就是类一加载就产生了对象。至于作用,就是懒汉式可以控制对象的产生时间。更多的作用会在以后的学习中才能更深的理解吧。这就是我目前的理解。。。
作者: 格子、    时间: 2014-8-6 22:40
最简单的就是配置文件了,只能有一个配置文件!不能说你搞一堆吧,那倒是你加载哪个?如何判断?让配置文件只有一个是最明智的选择。。。
作者: masai158    时间: 2014-8-6 22:41
{:3_53:}!!!!爸爸妈妈生孩子。总不能生一大堆吧!!{:3_54:} 我发现开玩笑开过了
作者: ┣┫流枫    时间: 2014-8-6 22:47
单例模式   一个类只能创建一个对象   我不让你创建对象  我自己创建一个 给你提供使用方法
作者: ソi苆僞lè袮    时间: 2014-8-7 00:40
世界上只有一个你,不能有另外一个你
作者: zhuohong_xiao    时间: 2014-8-7 00:57
懒汉式用于面试,饿汉式用于开发。
作者: 215041631    时间: 2014-8-7 01:42
在一个类出现一个实例对象的时候我们就用用单例设计的这种模式,而这两种是单例模式的两种实现方法。其中懒汉式在多线程下具有不安全的因素
作者: pray    时间: 2014-8-7 10:24
单例模式   一个类只能创建一个对象   我不让你创建对象  我自己创建一个 给你提供使用方法
作者: 一顿一只牛    时间: 2014-8-7 10:34
听说饿汉式可以延迟加载
作者: java_668    时间: 2014-8-7 12:39
路过的。。。
作者: 沐小北    时间: 2014-8-7 13:10
  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.         }
复制代码

作者: —Jimmy—    时间: 2014-8-7 13:19
就是单例设计模式啊,只想要一个对象操作同一个对象里面的属性,就要用到单例设计模式,单例设计模式中就有饿汉式和懒汉式的区别,这样的
作者: 阳光的嘉主角    时间: 2014-8-7 13:43
省内存的做法
作者: 晓俞飞、孰能归    时间: 2014-8-7 14:21
单例模式   一个类只能创建一个对象   我不让你创建对象  我自己创建一个 给你提供使用方法
作者: 桂何钢    时间: 2014-8-7 14:52
等你使用几次就懂了
作者: liqi    时间: 2014-8-7 15:36
在线程同步中,懒汉式容易出现线程安全问题。
作者: shuimu_88    时间: 2014-8-7 17:42
懒汉式和饿汉式的目的就是要求建立的对象是唯一的,举个最简单的例子,可乐,不管我们在中国买的**可乐,还是美国买的**可乐味道都是一样的,那么生产商只有在出厂前将可乐生产好,才能保证这个要求。而不像咖啡一样,会根据个人喜好,自己能挑出不同的口味来。
作者: Troy123    时间: 2014-8-7 18:04
配置文件时候用
作者: 光头强    时间: 2014-8-7 18:15
作用其实就是保证对象的唯一性,,, 饿汉式真实开发比较常用,因为上来就new对象,  而懒汉式需要调用方法的时候再new对象,,也成为延时加载,面试经常问到,,,但是延时加载比较节省内存空间,,,什么时候用什么时候new
作者: 王洪涛    时间: 2014-8-7 18:28
饿汉式保证了对象的唯一性 ,懒汉式延迟加载
作者: sunny~    时间: 2014-8-7 20:23
老毕视频很清楚
作者: 南柯一梦    时间: 2014-8-7 21:07
懒汉式和饿汉式都是可以保证只创建一个对象,只不过懒汉式创建类对象时就创建对象,而懒汉式实现延迟加载,只有等调用方法时才创建对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2