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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

围观哦。。。。。。
回复 使用道具 举报
什么都没写好失望
回复 使用道具 举报
本帖最后由 11210107 于 2016-3-14 12:21 编辑

饿汉式与懒汉式的区别主要在于创建实例的位置不同,饿汉式在类内部(方法外)创建,懒汉式在方法中创建实例(可能存在线程安全问题)。
饿汉式(简化)
public class Singleton {
        
        //1、私有化构造器
        private Singleton(){
               
        }
        //2、创建类的实例
        private static Singleton singleton = new Singleton();
        //3、提供公共的方法来返回实例
        public static Singleton getInstance(){
                return singleton;
        }
        
}
懒汉式(简化):
public class Singleton{
        //私有化构造器
        private Singleton(){
               
        }
        //声明类的实例
        private static Singleton instance = null;
        //创建公共的方法返回实例
        public static Singleton getInstance(){               
                if(instance == null){
                        return new Singleton();
                }
                return instance;
        }
}
回复 使用道具 举报
11210107 发表于 2016-3-14 12:13
饿汉式与懒汉式的区别主要在于创建实例的位置不同,饿汉式在类内部(方法外)创建,懒汉式在方法中创建实例 ...

好好收藏它,谢谢你分享....
回复 使用道具 举报
饿汉式:类一加载,对象就会被创建.
懒汉式:对象的延时加载,只有方法被调用,对象才会被创建
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马