使用静态内部类实现懒加载
class Singleton7{
//私有构造器
private Singleton7(){
}
//编写静态内部类,该类中有一个静态属性Singleton,
//这个类加载的时,内部类不会加载,实现懒加载的方式
private static class SingletonInstance{
private static final Singleton7 INSTANCE = new Singleton7();
}
//提供一个静态的公有方法,直接返回SingletonInstance.INSTANCE
public static Singleton7 getInstance(){
return SingletonInstance.INSTANCE;
}
}
内部类在类加载的时候不会被实例化,实现懒加载的方式,同时类加载的时候是线程安全的。类的静态属性只会在第一次加载时初始化,JVM在帮助我们保证了线程的安全性。推荐使用。