单例满足的条件
- 某个类只能有一个实例;
- 它必须自行创建这个实例;
- 它必须自行向整个系统提供这个实例;
单例的几种方式:
public class Single1 {
private Single1(){
}
public static final Single1 INSTANCE = new Single1();
}
public enum Single2 {
INSTANCE;
}
public class Single3 {
private Single3(){
}
public static final Single3 INSTANCE;
static {
INSTANCE = new Single3();
}
}
private Single4(){
}
private static volatile Single4 instance;
public Single4 getInstance(){
if(instance == null){
synchronized (this){
if (instance == null){
instance = new Single4();
}
}
}
return instance;
}
public class Single5 {
public Single5 getInstance(){
return Inner.INSTANCE;
}
private static class Inner{
private static final Single5 INSTANCE = new Single5();
}
}
网友评论