Integer自動拆箱 自動裝箱

2021-06-28 17:44:43 字數 1163 閱讀 7973

package com.tmt.test_code;

public class zhuangchaixiiangtest

}這個的運算結果是什麼呢?

---new integer(128)  ==  int 128 ---true

---new integer(128) == new integer(128)---false

---integer 127  == integer 127---true

---integer 128  == integer 128---false

---long 127l == long 127l--true

---long 128l == long 128l--false

3l.equals(integer 1 + integer 2)--false

3l == (integer 1 + integer 2)--true

基本資料型別和物件間的「==」,物件會自動拆箱為基本資料型別再比較,比較的就是裡面的值而不是位址

---new integer(128) == new integer(128)---false

物件間的「==」是比較兩者在記憶體中的位址

---integer 127  == integer 127---true

---integer 128  == integer 128---false

---long 127l == long 127l--true

---long 128l == long 128l--false

integer與integer間的"=="比較,從jdk1.5開始,有「自動裝箱」這麼乙個機制,在byte-128到127範圍內(ps整型的八位二進位制的表示的範圍為-128到127),如果存在了乙個值,再建立相同值的時候就不會重新建立,而是引用原來那個,但是超過byte範圍還是會新建的物件

3l.equals(integer 1 + integer 2)--false

equals方法不處理型別間的轉換

3l == (integer 1 + integer 2)--true

包裝類的「==」運算在遇到算術運算的情況下會自動拆箱

Integer自動拆箱裝箱

integer a new integer 3 integer b 3 int c 3 system.out.println a b system.out.println a c 問題一 上面的輸出為啥?答案 false true 解答 第乙個是兩個引用之間的比較,他們沒有引用同一物件,所以為fal...

裝箱和拆箱,自動裝箱和自動拆箱

以integer的建立為例。裝箱 把基本資料型別轉換成包裝類物件 int integer integer num1 new integer 17 拆箱 把乙個包裝類的物件,轉換成基本型別的變數 integer int int num2 num1.intvalue 自動裝箱 integer num3 ...

自動拆箱 裝箱

返回目錄 裝箱就是自動將基本資料型別轉換為包裝器型別 拆箱就是自動將包裝器型別轉換為基本資料型別。自動裝箱 integer total 99 自動拆箱 也就是說在i 128 i 128是會建立不同的物件,在i 128 i 128會根據i的值返回已經建立好的指定的物件。對於double型別來說,我們就...