黑马程序员技术交流社区

标题: 技术问题 懒汉式与饿汉式 [打印本页]

作者: 小柴    时间: 2014-6-6 09:58
标题: 技术问题 懒汉式与饿汉式
在毕老师的视频中, 单例懒汉式与饿汉式只在多线程中涉及!   请懂得大神,帮忙解释下懒汉式与饿汉式和他们的用途???谢谢!
作者: 苗润    时间: 2014-6-6 11:09
单例设计模式,目的是为了让该对象只实例化一次,例如,在读取配置文件的时候 ,只需要读一次 ,就可以通过单例设计模式,让该配置文件只读取一次就够了。
作者: 小柴    时间: 2014-6-6 14:05
能用代码说明下吗?:handshake
作者: 明日辉煌    时间: 2014-6-6 14:48
单例设计模式:
  饿汉式:public class Single{
  private static final Single s = new Single();
  private Single(){ };
  public static Single getInstance(){
  return s;}}
  懒汉式:public class Single{
  private static Single s = null;
  private Single(){}
  public static Single getInstance(){
  if(s==null){
  synchronized(Single.class){
  if(s==null) s=new Single();}}
  return s;}}
其中懒汉式又称为延迟加载,在具体用到时再实例化。
而饿汉式是类一加载对象就已存在,在实际开发中建议使用饿汉式,不过一般考试会考懒汉式
作者: Autumn    时间: 2014-6-6 14:52
这种问题怎么老有人问,你多看两遍视频,不懂来找我
作者: KevinSmart    时间: 2014-6-6 16:20
主要为了让对象只实例化一次,饿汉式可以是多线程的,多线程情况下保证对象只实例化一次
作者: 小柴    时间: 2014-6-6 17:40
谢谢啊!这下明白了!
作者: 贾俊锋    时间: 2014-6-6 18:27
学习了,很强大哈,
作者: 马宁    时间: 2014-6-6 19:33
来围观看看
作者: 任黎明    时间: 2014-6-6 20:09
我来学习了!!!!!!!!!!
作者: 提菩--空    时间: 2014-6-6 23:02
复习一下。免得以后忘记了
作者: 艮昕辶    时间: 2014-6-7 10:46
标题: 单例:将构造函数private
  1. public class Single{
  2.   private static final Single s = new Single();
  3.   private Single(){ };
  4.   public static Single getInstance(){
  5.   return s;}}
  6.  public class Single{
  7.   private static Single s = null;
  8.   private Single(){}
  9.   public static Single getInstance(){
  10.   if(s==null){
  11.   synchronized(Single.class){
  12.   if(s==null) s=new Single();}}
  13.   return s;}}
复制代码

作者: 小柴    时间: 2014-6-7 11:30
艮昕辶 发表于 2014-6-7 10:46

谢谢,大家关照!提问结束了!!!




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