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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fever_ai_my 中级黑马   /  2015-7-15 14:45  /  338 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

饿汉式和懒汉式  不懂什么意思

7 个回复

倒序浏览
保证Single类的对象,在内存中是唯一的
实现一个类的单例设计模式三步
1. 私有修饰构造方法
2. 自己类成员位置,创建自己类对象
3. 提供公共方法,访问变量
写法是饿汉式,懒汉式是对象的延迟加载
回复 使用道具 举报
本帖最后由 晓月残魂 于 2015-7-15 19:10 编辑

在某些情况下,我们只希望在程序的某个阶段某个类只有一个对象,这个时候就可以考虑单例模式。比如,这个类是关于软件的配置信息的设定。
1)构造函数私有化,从而不允许外部直接创建其对象
2)由于静态成员是随着类加载时而生成的,所以设计成静态成员
3)静态共有函数是通过类名访问的
4)饿汉式:在类加载时,就生成本类的对象
5)懒汉式:在类加载时,不直接生成本类对象,而只是产生一个本类的引用,在共有静态函数被调用时,才生成本类对象(这种现象称为 延迟加载)。另:懒汉式在多线程中,可能产生多个对象,从而打破了“单例”模式,所以要同步处理
回复 使用道具 举报
两个区别就是饿汉式在加载类时就生成了实例,而懒汉式在调用getInstance时才会生成实例,懒汉式会节约资源点,但会带来安全性问题,最好加上同步
回复 使用道具 举报 1 0
饿汉式 就是直接在成员变量处new了  表示我很饿 我就是直接吃
懒汉式 做了判断~~!比喻懒
回复 使用道具 举报
饿汉式先初始化,懒汉式后初始化
回复 使用道具 举报
谢谢各位!!!
回复 使用道具 举报
单例:内存中只能存在一个该类的对象
饿汉式:对象的初始化过程在类加载的时候就已经完成
懒汉式:调用方法的时候再创建对象,需要注意线程安全问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马