返回信息流利用静态内部类的方式来实现单例模式
```Java
public class A{
private A(){}
private static class Inner{
private static A a=new A();
}
public static A getA(){
return Inner.a;
}
}
```
问题:为什么需要静态内部类?
下面这种方式不可以吗
```Java
public class A{
private A(){}
private static A a=new A();
public static A getA(){
return a;
}
}
```
这是一条镜像帖。来源:北邮人论坛 / java / #55477同步于 2017/3/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
单例模式的困惑
liuyehcf
2017/3/9镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
第一种只有在你调用getA时候才会新建对象A。而第二个在A类加载的时候就新建了一个对象A,如果你以后没有用到这个对象,岂不是浪费了。
延迟加载就是用的时候再创建对象。
【 在 liuyehcf 的大作中提到: 】
: 谢谢,还是不太明白,能否详细说明一下
非常感谢
【 在 HB0318 的大作中提到: 】
: 第一种只有在你调用getA时候才会新建对象A。而第二个在A类加载的时候就新建了一个对象A,如果你以后没有用到这个对象,岂不是浪费了。
: 延迟加载就是用的时候再创建对象。