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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 1961993790 于 2013-10-25 08:58 编辑

这有什么不同呢?懒汉式这样可以更好的节约内存空间啊。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 以后最好有范例代码

查看全部评分

9 个回复

倒序浏览
懒汉式线程不安全
回复 使用道具 举报
饿汉式和懒汉式的区别:
                饿汉式是类一加载进内存就创建好了对象;
                懒汉式则是类才加载进内存的时候,对象还没有存在,只有调用了getInstance()方法时,对象才开始创建。
                懒汉式是延迟加载,如果多个线程同时操作懒汉式时就有可能出现线程安全问题,解决线程安全问题
                可以加同步来解决。但是加了同步之后,每一次都要比较锁,效率就变慢了,所以可以加双重判断来提高程序效率。
开发常用饿汉式,因为饿汉式简单安全。懒汉式多线程的时候容易发生问题

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报 1 0
为了安全着想~~~
回复 使用道具 举报 1 0
饿汉式:
        public class Singleton{
            private static Singleton singleton = new Singleton ();
            private Singleton (){}
            public Singleton getInstance(){return singletion;}
       }

     懒汉式:
       public class Singleton{
            private static Singleton singleton = null;
            public static synchronized synchronized getInstance(){
                 if(singleton==null){
                     singleton = new Singleton();
                 }
                return singleton;
            }
       }

     比较:
         饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
          懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的
          推荐使用第一种

点评

写的有点不对劲啊,仔细检查一下啊  发表于 2013-10-23 20:14

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
djkyqkzj 发表于 2013-10-23 19:12
饿汉式:
        public class Singleton{
            private static Singleton singleton = new Single ...

下次注意了
回复 使用道具 举报
我的理解是,在两种方法都能达到目的的情况下,用饿汉式避免了安全问题,而且这也不需要什么大的代码量,懒汉式加锁会变得复杂,程序运行时间会增加
回复 使用道具 举报
乔兵 高级黑马 2013-10-25 08:18:56
8#
楼主你好,如果问题已解决请将帖子状态修改为提问结束,

如果未解决请继续提问,谢谢合作

修改方法请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
乔兵 高级黑马 2013-10-25 08:19:06
9#
楼主你好,如果问题已解决请将帖子状态修改为提问结束,

如果未解决请继续提问,谢谢合作

修改方法请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马