原始資料型別和包裝型別的「 」

2021-10-05 08:55:24 字數 2417 閱讀 3630

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

來自 <>

integer

a1=100;

integer

a2=100;

integer

a3=150;

integer

a4=150;

system.

out.println(a1==a2);//

(true)

system.

out.println(a3==a4)

;// (false)

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

來自 <>

integeri1=

newinteger(

128);

inti2=

128;

system.

out.println(i1==i2)

;//true

3//不會經歷拆箱過程,i1的引用指向堆,而i2指向專門存放他的記憶體(常量池),他們的記憶體位址不一樣,所以為false

來自 <>

integeri1=

newinteger(

128);

integeri2=

128;

system.

out.println(i1==i2)

;// false

(注意2和3的區別)

4//兩個都是new,兩個物件間的比較,比較的是位址,所以為false

來自 <>

integera1=

newinteger(

100);

integera2=

newinteger(

100);

integera3=

newinteger(

150);

integera4=

newinteger(

150);

system.

out.println(a1==a2)

;// (false)

system.

out.println(a3==a4)

;// (false)

5 string型別

string a="123";

//在堆建立乙個物件被b引用,然後堆中的值指向常量池的「123」

string b=new string("123");

//兩者指向的位址不同,所以為false

stringa=

"123";

stringb=

newstring(

"123");

system.

out.println(a==b)

;//false

system.

out.println(

"---string

與newstring------"

+a.equals(b))

;// true

來自 <>

注:object中的equal與==的作用相同,但是string類複寫了object類的equal方法,只要a和b的內容相同,則返回true

6 integer的equals方法,比較的是內容

integera1=

newinteger(

100);

integera2=

newinteger(

100);

integera3=

newinteger(

150);

integera4=

newinteger(

150);

system.

out.println(a1.equals(a2))

;// (true)

system.

out.println(a3.equals(a4))

;//(true)

Algs4 2 1 26原始資料型別

2.1.26原始資料型別。編寫乙個能夠處理int值的插入排序的新版本,比較它和正文中所給出的實現 能夠隱式地用自動裝箱和拆箱轉換integer值並排序 的效能。答 原始資料型別相對物件型別約有15 以上的效能提公升。public class insertion private static bool...

基本資料型別(一) 原始資料型別和運算子

python 是由吉多 範羅蘇姆 guido van rossum 在 90 年代早期設計。它是如今最常用的程式語言之一。它的語法簡潔且優美,幾乎就是可執行的偽 用井字元開頭的是單行注釋 多行字串用三個引號 包裹,也常被用來做多 行注釋 整數 3 3 算術沒有什麼出乎意料的 1 1 2 8 1 7 ...

String是原始資料型別還是引用資料型別

呵呵,這個問題最好用實驗證明,一看就明白 object obj aaaa 不會報錯,因為 aaaa 生成出來就是乙個物件 object obj 100 編譯器報錯,提示無法從int 型別強制轉為object 原因 100 為 int 原始資料型別,所以不能轉成object 物件 aaaa 為字串 s...