//使用静态内部类达到效果 public class StaticSingleton { private StaticSingleton() {} private static class SingletonHolder { private static StaticSingleton instance=new StaticSingleton(); } public static StaticSingleton getInstance() { return SingletonHolder.instance; } }
使用这个方式的优势:java
StaticSingleton类被加载的时候内部类不会被初始化,只有调用getInstance()方法的时候才会被调用;多线程
实例时在类加载的时候完成,故能够使用多线程;
线程