package com.lang;
public class Single {
//饿汉式,开始就创建 线程安全
private static final Single single = new Single();
private Single() {}
public Single getInstance() {
return single;
}
}
class Single1{
//饿汉式 需要的时候才创建 线程不安全
private static Single1 single1;
private Single1() {}
public Single1 getInstance(){
if(single1==null) {
single1 = new Single1();
}
return single1;
}
}
class Single2{
//双重判断 线程安全
private static Single2 single2;
private Single2() {}
public Single2 getInstance() {
if(single2==null) {
synchronized (Single2.class) {
if(single2==null) {
single2 = new Single2();
}
}
}
return single2;
}
}
//使用静态内部类
class Single3{
private Single3() {}
private static class SingleInstance{
private static final Single3 sinle3 = new Single3();
}
public Single3 getInstance() {
return SingleInstance.sinle3;
}
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交