我在布爾類的源看到以下內容: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