**强烈推荐的解法二:借助内部类 这种方法属于懒汉式单例,因为Java机制规定,内部类SingletonHolder只有在getInstance()方法第一次调用的时候才会被加载(实现了lazy),而且其加载过程是线性安全的。内部类加载的时候实例化一次instance。 public class Singleton {
private Singleton() { } private static class SingletonHolder { private final static Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.INSTANCE; } }