[英]Boolean_val vs Boolean.TRUE(Boolean_val) when used in a conditional statement
在Java (1.8+)中,以下兩個if語句之間存在性能差異。 我的代碼必須在迭代中進行很多此類調用。
void test(final Boolean val) {
if (val) {
...
}
}
和
void test(final Boolean val) {
if (Boolean.TRUE.equals(val) {
...
}
}
JIT編譯器會優化差異嗎? 開箱是否比equals
方法調用貴?
拆箱等於val.booleanValue()
,因此JIT應該能夠內聯這種方法。
Boolean.TRUE.equals(val)
看起來更好的是null
安全性,因為對null
值進行自動裝箱將導致NullPointerException
。
也可以看看:
Boolean
類的源代碼 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.