//使用靜態內部類達到效果 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()方法的時候纔會被調用;多線程
實例時在類加載的時候完成,故能夠使用多線程;
線程