黑马程序员技术交流社区

标题: [长沙校区学习经历]+JavaEE4期+大神很多,我不敢大... [打印本页]

作者: 连环画    时间: 2017-9-20 17:01
标题: [长沙校区学习经历]+JavaEE4期+大神很多,我不敢大...
来到黑马学习已经快四个月了,在这里每天都过得很充实,早上睁开眼就是敲代码,晚上睡觉闭上眼脑子里还是只有代码·····
今天和大家分享一下单例模式的几个小demo
1、懒汉写法,常用写法
1

2

3

4

5

6

7

8

9

10

11

class LazySingleton{
    private static LazySingleton singleton;
    private LazySingleton(){
    }
    public static LazySingleton getInstance(){
        if(singleton==null){
            singleton=new LazySingleton();
        }
        return singleton;
    }   
}

2、恶汉写法,缺点是没有达到lazy loading的效果
1

2

3

4

5

6

7

class HungrySingleton{
    private static HungrySingleton singleton=new HungrySingleton();
    private HungrySingleton(){}
    public static HungrySingleton getInstance(){
        return singleton;
    }
}

3、静态内部类,优点:加载时不会初始化静态变量INSTANCE,因为没有主动使用,达到Lazy loading
1

2

3

4

5

6

7

8

9

class InternalSingleton{
    private static class SingletonHolder{
        private final static  InternalSingleton INSTANCE=new InternalSingleton();
    }   
    private InternalSingleton(){}
    public static InternalSingleton getInstance(){
        return SingletonHolder.INSTANCE;
    }
}




作者: 彭豆豆    时间: 2017-9-21 13:32
谢谢分享
作者: 长沙黑马大米    时间: 2017-9-21 13:38
不错不错  
作者: 长沙学工部依依    时间: 2017-9-21 13:47
不错嘛  
作者: 长沙学工部小样    时间: 2017-9-21 13:52
厉害了   
作者: 长沙黑马大米    时间: 2017-11-14 14:27
厉害了  棒棒棒  
作者: 长沙学工部小样    时间: 2017-11-23 14:58
加油加油  




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