凡是提到设计模式,面试官很喜欢问最简单的单例模式。
##方法一
单例模式最简单的写法如下
public class SingletonPatternA {
private static SingletonPatternA instance = null;
private SingletonPatternA(){}
public static SingletonPatternA getInstance(){
if(instance == null)
instance = new SingletonPatternA();
return instance;
}
}
这个写法是懒汉单例模式,但也是是属于线程不安全的写法。如果多线程同时来进行getInstance的操作,那么这个时候进入if(instance == null)判断时就需要加入线程同步的方法了。
##方法二
下面写一写存在线程安全的单例模式。
/**
* 单例模式 - 懒汉、线程安全
*/
public class SingletonPatternB {
private static SingletonPatternB instance;
private SingletonPatternB() {
}
// 加入synchronized,把整个方法串行执行
public static synchronized SingletonPatternB getInstance(){
if(instance == null){
instance = new SingletonPatternB();
}
return inst