JAVA面试题(part7)--Integer类
生活随笔
收集整理的這篇文章主要介紹了
JAVA面试题(part7)--Integer类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,僅供參考
JAVA面試題
- 請看下面一段代碼,寫出它的輸出結果
輸出:
false true ----------- false true ----------- true true ----------- false true- 疑問
為何i5和i6指向的是同一個對象,而i7和i8指向的不是同一個對象?
- 解答:
-128到127是byte的取值范圍,如果在這個取值范圍內,自動裝箱就不會新創建對象,而是從常量池中獲取, 如果超過了byte取值范圍就會再新創建對象。
- 注意
a == b 是比較a和b的地址值是否為同一個.
而對于a.equals(b)來說,如果是Object類中的equals方法,那么這個方法同樣是比較a和b的地址值。但是一般類都會重寫該方法,Integer類也重寫了該方法:
public boolean equals(Object obj)重寫后的equals方法比較此對象與指定對象。當且僅當參數不為null,并且是一個與該對象包含相同 int 值的 Integer 對象時,結果為 true。
總結
以上是生活随笔為你收集整理的JAVA面试题(part7)--Integer类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保险期满退保怎么退
- 下一篇: 第三次学JAVA再学不好就吃翔(part