1. 首页
  2. 编程面试题
  3. Java
  4. 设计模式

单例设计模式--懒汉式内部类创建单例



实体类:


public class SingleTon implements Serializable {
    private SingleTon(){ System.out.println("构造方法执行了,创建单例对象");}
    
    // 内部类创建单例(懒汉式)
    // 没有使用内部类就不会创建单例对象,当调用getInstance的时候,通过内部类创建对象
    private static class Holder{
        static SingleTon instance = new SingleTon();
    }

    public static SingleTon getInstance(){
        return Holder.instance;
    }

测试类:


public class TestSingleTon {
    public static void main(String[] args) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, IOException, ClassNotFoundException {

        System.out.println(SingleTon.getInstance());
        System.out.println(SingleTon.getInstance());
    }
}

结果如下,内部类创建的单例地址一样


构造方法执行了,创建单例对象
instance.SingleTon@67424e82
instance.SingleTon@67424e82

**为什么内部类不会重复执行多次创建对象?**
new两个对象,但是因为静态变量只加载一次,所以new第二个对象的时候,不会再去调了

发布者:admin,如若转载,请注明出处:https://ai1024.vip/38644.html

QR code
//