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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑黑黑马 中级黑马   /  2014-3-11 11:50  /  12387 人查看  /  39 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑黑黑马 于 2014-3-11 19:39 编辑

求教。刚上了java基础班,一个入学测试,谁给提供了思路呀,,看名字我都蒙了,这块没学过

39 个回复

倒序浏览
1、单例就是该类只能有一个唯一的对象,私有构造函数
2、在内部建立对象 提供公共访问方式访问
3、双重判断对对象的引用进行判断,加入同步更安全。
回复 使用道具 举报
本帖最后由 kira 于 2014-3-11 11:57 编辑

多加一个判断而已
  1. class Single{
  2.         private static Single s = null;
  3.        private Single(){}
  4.         public static Single getInstance(){
  5.                 if(s==null){
  6.                         synchronized (s) {
  7.                                 if(s==null)
  8.                            s  =new Single();                        
  9.                         }
  10.                 }
  11.                 return  s;
  12.         }
  13.         
  14. }
复制代码
回复 使用道具 举报
单例设计模式二(懒汉式)
类进内存对象还没有存在,只有调用方法时才建立对象
对象是方法被调用时才初始化,也叫做对象的延时加载
class Single
{
        private static Single s = null;
        private Single(){}
        public static Single getInstance()
        {
                if(s == null)
                        s = new Single();
                        return s;
        }
}
楼上那个事涉及多线程了

评分

参与人数 1黑马币 +3 收起 理由
SyouRai_Tsk + 3

查看全部评分

回复 使用道具 举报
延迟加载的单例设计模式:    不就是懒汉式吗??
  1. class Single
  2. {
  3.         private static Single s = null;
  4.         private Single(){}
  5.         public static Single getInstance()
  6.         {
  7.                 if(s==null)
  8.                         s = new Single();
  9.                         return s;
  10.         }
  11. }
复制代码


  1. class Single
  2. {
  3.         private static Single s = null;
  4.         private Single(){}
  5.         public static Single getInstance()
  6.         {
  7.                 if(s==null)
  8.                 {
  9.                         synchronized(Single.class)    //懒汉式多线程容易出问题  ,加双重判断解决了这个问题
  10.                         {                               
  11.                                 if(s==null)
  12.                                         s = new Single();
  13.                         }
  14.                 }
  15.                 return s;
  16.         }
  17. }
复制代码


回复 使用道具 举报 1 0
好多呀,,,那一个
回复 使用道具 举报
我是来学习的
回复 使用道具 举报
延迟的就是懒汉的,就是上面几个大神们写的那样
回复 使用道具 举报
好啊,真不错
回复 使用道具 举报
多谢指导!
回复 使用道具 举报
真心不错
回复 使用道具 举报
单例设计模式分两种,一种是懒汉式,一种是饿汉式。其中懒汉式就是延迟加载的单例设计模式
回复 使用道具 举报 1 0
求注释啊 有点看不懂啊
回复 使用道具 举报
延迟加载单例设计模式之一的方法是懒汉式
回复 使用道具 举报
2528870651 发表于 2014-3-11 12:58
延迟加载的单例设计模式:    不就是懒汉式吗??

延迟加载的单例设计模式只能用懒汉式吗?其它的方法行不?
回复 使用道具 举报
延迟加载就是指懒汉式的单例设计,对象先不实例化,什么时候用,什么时候实例化,这就是延迟的意思
回复 使用道具 举报
焚雨成灰 发表于 2014-3-11 12:23
单例设计模式二(懒汉式)
类进内存对象还没有存在,只有调用方法时才建立对象
对象是方法被调用时才初始化 ...

涨姿势了
回复 使用道具 举报
太难理解了!
回复 使用道具 举报
rehan 中级黑马 2015-2-11 14:13:02
19#
不错,你们都很棒,我要加油了↖(^ω^)↗
回复 使用道具 举报
o(︶︿︶)o我也对此不懂,这部分有点懵、、、
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马