java数据类型常见面试题
生活随笔
收集整理的這篇文章主要介紹了
java数据类型常见面试题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下面 Integer 類型的數值比較輸出的結果為?
簡單的說,如果整型字面量的值在-128 到 127 之間,那么不會 new 新的 Integer 對象,而是直接引用常量池中的 Integer 對象,100是在范圍之內,所以直接引用常量池中的Integer對象就可以了,而150已經超出了范圍,所以需要new一個新的Integer對象,因此地址值不同,所以上面的面試題中 f1== f2的結果是 true,而 f3 ==f4 的結果是 false。
如果不明就里很容易認為兩個輸出要么都是 true 要么都是 false。首先需要注意的是 f1、f2、f3、f4 四個變量都是 Integer 對象引用,所以下面的==運算比較的不是值而是引用。裝箱的本質是什么呢?當我們給一個 Integer 對象賦一個 int 值的時候,會調用 Integer 類的靜態方法 valueOf,如果看看 valueOf 的源代碼就知道發生了什么。
源碼:
IntegerCache 是 Integer 的內部類,其代碼如下所示:
總結
以上是生活随笔為你收集整理的java数据类型常见面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis常见面试题总结(详细)
- 下一篇: short s1 = 1; s1 = s