一般用于确定只需要一个实例的类中:
public class SingleTonTest {
//构造器私有化
private SingleTonTest(){
}
//利用静态内部类,在第一次访问静态内部类中静态成员对象的时候加载,
//后面在访问的时候就不会加载,相比于懒汉式静态方法的单例模式,它是按需求加载
public static SingleTonTest getInstance(){
return Nest.instance;
}
private static class Nest{
static SingleTonTest instance = new SingleTonTest();
}
//本类中测试,可以创建多个实例,但是对与其它类来说,获取该类的实例只有一个方法,并且通过内部类的方法实现懒汉式加载,也可以保证线程安全
public static void main(String[] args) {
SingleTonTest instance = SingleTonTest.getInstance();
SingleTonTest instance1 = SingleTonTest.getInstance();
System.out.println(instance == instance1);
}
}