//饿汉式 //简单的单例模式,线程安全,可是性能低, 当singletontest被建立的时候 会被实例化 占用内存 public class SingletonTest(){ //构造函数私有化 private SingletonTest(){} private static final SingletonTest instance = new SingletonTest(); private static SingletonTest getInstance(){ return instance; } } //懒汉式 //线程不安全 调用getInstance的时候可能屡次实例化 public class SingletonTest{ //构造函数私有化 private SingletonTest(){} private static SingletonTest instance; private static SingletonTest getInstance()[ if(instance==null){ instance = new SingletonTest(); } return instance; } } //简单优化 //线程安全,可是性能低,被加了 synchronized public class SingletonTest{ //构造函数私有化 private SingletonTest(){} private static SingletonTest instance; private static synchronized SingletonTest getInstance()[ if(instance==null){ instance = new SingletonTest(); } return instance; } } //最优方案 public class SingletonTest{ //构造函数私有化 private SingletonTest(){} private static SingletonTest instance; private static SingletonTest getInstance()[ if(instance==null){ //同步代码块 synchronized(SingletonTest.class){ if(instance==null){ instance = new SingletonTest(); } } } return instance; } }