这篇文章关于单例模式的分析与解释写的非常好,让我受益颇多,详情看右链接:blog.csdn.net/goodlixueyong/article/details/51935526
我这只是把具体的做法写下来,为以后自己使用方便
方式一:
- public class Singleton {
- private static volatile Singleton instance = null;
- private Singleton(){}
- public static Singleton getInstance() {
- if (instance == null) {
- synchronized (Singleton.class) {
- if (instance == null) {
- instance = new Singleton();
- }
- }
- }
- return instance;
- }
- }
方式一中的关键字volatile的使用方式在上述链接中有解释!
方式二:
- public class Singleton{
- private static class SingletonHolder{
- public static Singleton instance = new Singleton();
- }
- private Singleton(){}
- public static Singleton newInstance(){
- return SingletonHolder.instance;
- }
- }