public class Singleton {
private final static Singleton INSTANCE = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return INSTANCE;
}
}
2. 餓漢式(靜態(tài)代碼塊)
優(yōu)缺點(diǎn)和上面的一樣,只是實(shí)現(xiàn)的方式不同猪钮;
public class Singleton {
private static Singleton instance;
static {
instance = new Singleton();
}
private Singleton() {
}
public static Singleton getInstance() {
return instance;
}
}
3. 懶漢式(線(xiàn)程不安全)
只能在單線(xiàn)程下使用品山,所以這這種寫(xiě)法基本上不使用;
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public static Singleton getInstance() {
if(instance==null){
instance = new Singleton();
}
return instance;
}
}
4. 懶漢式(線(xiàn)程安全烤低,同步方法)
其實(shí)就是加了一個(gè)方法鎖肘交,效率太差,不推薦使用
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if(instance==null){
instance = new Singleton();
}
return instance;
}
}