Integer 與int 賦值比較

2021-08-04 20:57:58 字數 874 閱讀 1177

測試**:

@test

public

void

integertest()

執行結果:

true

true

false

true

斷點除錯分析結果:

i01是引用型別,如圖引用的位址為integer@651

i02是值型別

i03是引用型別,因為引用型別值放在堆裡面,如果堆裡有值,i03這種取值方式就直接引用原有值的位址integer@651

i04是引用型別,但是i04是new建立新物件,要在堆裡新開空間存放值,也就會有新位址integer@652

i01與i02比較,引用型別和值型別用等號比較,比較的是值(引用型別自動拆箱為int),故返回true;

i01與i03比較,引用型別和引用型別用等號比較,比較的是位址,兩個位址一樣,故返回true;

i03與i04比較,引用型別和引用型別用等號比較,比較的是位址,兩個位址不同,故返回false;

i02與i04比較,值型別與引用型別用等號比較,比較的是值(引用型別自動拆箱為int),故返回true;

Integer 與int 賦值比較

測試 test public void integertest 執行結果 true true false true 斷點除錯分析結果 i01是引用型別,如圖引用的位址為integer 651 i02是值型別 i03是引用型別,因為引用型別值放在堆裡面,如果堆裡有值,i03這種取值方式就直接引用原有值...

Integer 與int 賦值比較

測試 test public void integertest 執行結果 true true false true 斷點除錯分析結果 i01是引用型別,如圖引用的位址為integer 651 i02是值型別 i03是引用型別,因為引用型別值放在堆裡面,如果堆裡有值,i03這種取值方式就直接引用原有值...

Java之Integer與int比較

先看 integer a new integer 1 integer a2 new integer 1 integer c 1 integer c2 1 int d 1 integer e 128 integer e1 128 system.out.println a a2 false system...