实体类:
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