2016-12-27 48 views
1

我試圖在我的代碼上運行IntelliJ中提供的代碼檢查,並在調用new Boolean("true")時報告了性能問題。
在IDE中的描述給出布爾構造函數如何導致性能問題?

報告任何企圖實例化一個新的Boolean對象。構建 很少需要新的布爾對象,並且如果經常執行,可能會導致性能問題。

想了解該聲明如何或爲什麼會導致性能問題?

+1

那麼,爲什麼你特別需要一個新的實例?它可以從字面上只採取兩個值,所以在多個實例中有什麼意義。你只是分配更多的對象。 –

+1

參考http://www.programmr.com/blogs/two-things-every-java-developer-should-know-about-booleans –

+0

@JeroenVannevel,好吧,我可以改變它爲原始數據類型,但熱衷於理解爲什麼或如何能達到性能 –

回答

3

如果您撥打new Boolean("true")一百萬次,則會創建百萬Boolean個對象。相反,你可以使用Boolean.valueOf("true")這將重用相同的Boolean對象(或者只是使用原始值true,讓編譯器爲你處理拳擊)。

+0

那麼,這只是創建對象的開銷嗎?沒有其他具體原因導致性能下降,我猜... –

+0

@GS創建許多不必要的對象可能會導致性能下降(包括它們佔用的內存,多次執行布爾構造函數所需的時間,以及垃圾收集器的額外工作,釋放所有這些對象)。 – Eran