一、整体代码
Singleton.java
public class Singleton {
private static Singleton uniqueInstance;
// other useful instance variables here
private Singleton() {}
public static synchronized Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// other useful methods here
}
Singleton.java
public class Singleton {
private static Singleton uniqueInstance = new Singleton();;
// other useful instance variables here
private Singleton() {}
public static Singleton getInstance() {
return uniqueInstance;
}
// other useful methods here
}
二、解析
1、第一种单件模式,在多线程时需要同步,造成了额外开销。
2、第二种不用同步。