我在布尔类的源看到以下内容:Boolean.FALSE或new Boolean(false)?
public static final Boolean FALSE = new Boolean(false);
因此,如果我理解正确的领域FALSE
在Boolean
类是Boolean
本身已其boolean
字段设置为false
。
现在我想知道下面的两个陈述是否真的相同。
Boolean myBool = new Boolean(false);
和
Boolean myBool = Boolean.FALSE;
我会假设,在一个新的Boolean对象的构造与第一种情况和myBool参考点到它,而在第二种情况下,我们实际上做参考的副本到Boolean.FALSE对象 - 这是正确的吗?
如果是这样的话有什么区别真的是什么意思?
最后但并非最不重要的实际问题:我更喜欢哪两种选择,为什么?
你应该使用'Boolean.FALSE'。这符合JDK可能具有的未来更新。 –
而且'Boolean.valueOf()'通常更适合'new Boolean()'。 – Keppil
都不是。使用'false'让编译器通过自动装箱将其排除。 – EJP