當前位置:編程學習大全網 - 編程軟體 - 經典面試問題:整數c=100,d=100,c==d壹定是假的嗎?

經典面試問題:整數c=100,d=100,c==d壹定是假的嗎?

相信大家在面試的時候可能都遇到過這樣的問題!

相信大家的回答都是假的真的。

但在這裏我必須說,這個答案並不是絕對的。c==d壹定是真的,但a==b不壹定是假的,但有可能是真的。

但是我得到的值是真的,真的。如果妳不相信或者有疑問,請往下看!

我們首先要明白為什麽答案通常是假的和真的。

整數c = 1000實際上做了整數c = Integer的運算。值為(100)。讓我們來看看Integer.class的源代碼

從上面的代碼可以看出,當I >;= IntegerCache.low & amp& amp我& lt當= IntegerCache.high時,將直接從緩存數組中取值,否則new將是壹個新的Integer對象。

從上面Integer.class的源代碼可以看出,low的默認值是-128,high的值與integerCacheHighPropValue有關。

我們沒有在vm中設置Integercache的時候是127,緩存數組是從-128到127,這就不難理解為什麽了。

短文開頭提到的經典面試題,結果會有假有真。我後面強調的原因不壹定是因為ntegerCacheHighPropValue不為null時,依賴於jvm中的設置。

在eclipse中,我們可以做以下事情:

這時,如果再次執行那個代碼,就會得到true和true的結果。下次再有人問妳這樣的問題,妳可以大聲告訴他,那不壹定是真的。

  • 上一篇:如何用西門子觸摸屏將日期時間組合成字符串
  • 下一篇:航模油動發動機的cc是什麽意思謝謝!本人菜鳥呵呵呵呵油針是什麽意思
  • copyright 2024編程學習大全網