public class StaticSinglenton{
private static class SingletonHolder{
private static StaticSingleton instance = new StaticSingleton();
}
public static StaitcSingleton getInstance(){
return SingletonHolder.instance;
}
}
该实现中,单例模式使用内部结构来维护单例,当StaticSingleton被加载时,其内部类不会被初始化,可以保证当StaticSingleton类被jvm载入时,不会初始化单例类,而当
getInstance()方法被调用时,才会加载SingletonHolder。实例是在类加载时完成,对多线程友好,getInstance()方法也不需要使用同步关键字。既可以做到延迟加载,也不
必使用同步关键字。
通常情况该方法已经事确保系统中只存在唯一实例,但仍然有方式例外导致系统生成多个实例。