0
点赞
收藏
分享

微信扫一扫

java单例

//枚举模式
public enum EnumSingle {
INSANCE;
public void doSomeThing(){
System.out.println("do some thing");
}
}
package my;


//双检查
public class Single {
private Single(){}

private volatile static Single instance = null;

public static Single getInstance(){
if(instance == null){
synchronized (Single.class){
if(instance == null){
instance = new Single();
}
}
}
return instance;
}

}
package my;


//饿汉式
public class Single1 {
private static Single1 instance = new Single1();

private Single1(){}

public static Single1 getInstance(){
return instance;
}

}
package my;


//懒汉式
public class Single2 {
private static Single2 instance = null;

private Single2(){};


private static Single2 getInstance(){
if(instance == null)
instance = new Single2();
return instance;
}
}
package my;


//静态内部类
public class Single3 {
private Single3(){}

private static class Single3Hold{
private static Single3 istance = new Single3();
}

public static Single3 getInstance(){
return Single3Hold.istance;
}
}


举报

相关推荐

0 条评论