懒汉式: 指全局的单例实例在第一次被使用的时候构建
饿汉式: 指全局的单例实例在类装载的时候构建。
单例:
1、构造私有
1、饿汉式
public class Test{
private static Test instance = new Test();
private Test(){}
public static Test getInstance(){
return instance;
}
}
2、懒汉式
public class Test{
private static Test instance = null;
private Test(){}
public static sychronized Test getInstance(){
if(instance == null){
instance = new Test();
}
return instance;
}
}
3、懒汉, double checklock
public class Test{
private volatile static Test instance;
private Test(){}
public static Test getInstance(){
if(instance == null){
synchronized(Test.class){
if(instance == null)instance = new Test();
}
return instance;
}
}
}
4、静态内部类
public class Test{
private static class Test2{
private static final Test2 instance = new Test();
}
private Test(){}
public static Test getInstance(){
return Test2.instance;
}
}