今天看了一下java设计模式的单例模式,在懒汉式中一开始声明的类的实例化对象为什么只用private static 声明了而没有加final关键字?在饿汉式中声明实例是使用了private static final修饰
7 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
声明为final的变量,必须在类加载完成时已经赋值, 是什么意思呢?
就是,如果你是final非static成员,必须在构造器、代码块、或者直接定义赋值;
如果是final static 成员变量,必须直接赋值 或者在 静态代码块中赋值。
然而直接赋值 或 静态代码块中赋值 就变成饿汉模式了,
所以懒汉模式中,不能用final修饰
潇潇雨雨
TA贡献1833条经验 获得超4个赞
用饿汉式实现时,
private static final Singleton instance = new Singleton();
在声明时需要直接创建实例。
用懒汉式实现时,
private static Singleton instance;
声明时不需要直接创建对象,但这两种在声明的时候为什么一个用了final修饰一个没用?
添加回答
举报
0/150
提交
取消
