java--几种单例式
来源:互联网 发布:医学统计学简易软件 编辑:程序博客网 时间:2024/05/29 06:42
单例模式是我们经常用的设计模式之一,下面记一下几种常用的单例模式的写法,方便自己查阅
1.饿汉单例模式--缺点就是不能延迟加载
class SingltonDemoOne{ private static SingltonDemoOne singltonDemoOne=new SingltonDemoOne(); private SingltonDemoOne() { } public static SingltonDemoOne getSingltonDemoOne(){ return singltonDemoOne; }}
2.懒汉单例模式--懒加载
class SingltonDemoTwo{ private static SingltonDemoTwo singltonDemoTwo; private SingltonDemoTwo(){ } public static SingltonDemoTwo getSingltonDemoTwo(){ if(singltonDemoTwo==null){ singltonDemoTwo=new SingltonDemoTwo(); } return singltonDemoTwo; } }上面的虽然实现了懒加载,但并不适用语多线程下,修改加上syncihronized
class SingltonDemoTwo{ private static volatile SingltonDemoTwo singltonDemoTwo; private SingltonDemoTwo(){ } public static SingltonDemoTwo getSingltonDemoTwo(){ if(singltonDemoTwo==null){ synchronized (SingltonDemoTwo.class){ if (singltonDemoTwo==null){ singltonDemoTwo=new SingltonDemoTwo(); } } } return singltonDemoTwo; } }3.使用静态内部类
class SingletonDemoThree{ private static class Inner{ public static SingletonDemoThree singletonDemoThree=new SingletonDemoThree(); } private SingletonDemoThree (){ } public SingletonDemoThree getSingleton(){ return Inner.singletonDemoThree; }}
阅读全文
0 0
- java--几种单例式
- java
- JAVA
- JAVA
- JAVA
- java
- Java
- Java
- JAVA:
- java
- java
- java
- java
- Java
- java
- java
- java
- JAVA?
- MySQL执行外部sql脚本文件的命令
- 递推求组合数
- Executor, ExecutorService 和 Executors 间的不同
- 线程池的用法及配置
- C标准库之二:ctype.h
- java--几种单例式
- python实例(斐波那契数列)
- JavaScript_06
- log4j2相关配置说明以及${sys:catalina.home}应用
- java 堆 栈 方法区的简单分析
- 【贪心+ST算法+堆】BZOJ4458[GTY的OJ]题解
- Ubuntu14.04设置静态IP
- UVA.10375 Choose and divide (唯一分解定理)
- 判断一个数是不是2^N次方