黑龍江疫情太嚴(yán)重了廣州網(wǎng)站優(yōu)化
學(xué)習(xí)目標(biāo):
學(xué)習(xí)目標(biāo)如下:
- 明確 Integer 和 int 的 含義、使用方法 及之間的區(qū)別
學(xué)習(xí)內(nèi)容:
一、區(qū)別:
1.Integer是int的包裝類,int則是java的一種基本的數(shù)據(jù)類型;
2.Integer變量必須實(shí)例化之后才能使用,而int變量不需要實(shí)例化;
3.Integer實(shí)際是對(duì)象的引用,當(dāng)new一個(gè)Integer時(shí),實(shí)際上生成一個(gè)指針指向?qū)ο?#xff0c;而int則直接存儲(chǔ)數(shù)值
4.Integer的默認(rèn)值是null,而int的默認(rèn)值是0。
二、Integer和int的比較
1.由于Integer實(shí)際是對(duì)一個(gè)Integer對(duì)象的引用,所以兩個(gè)通過new生成的Integer變量永遠(yuǎn)是不相同的,因?yàn)镹ew生成的是兩個(gè)不同的對(duì)象,其內(nèi)存地址不同。下面運(yùn)行的結(jié)果為false
2.Integer變量和int變量進(jìn)行比較時(shí),只要兩個(gè)變量的值相等,則結(jié)果就為True,(因?yàn)榘b類Integer和基本數(shù)據(jù)類型比較的時(shí)候,java會(huì)自動(dòng)拆箱為int,然后進(jìn)行比較,實(shí)際上就是兩個(gè)int變量進(jìn)行比較),下面運(yùn)行的結(jié)果為true
3.非new生成的Integer變量和new Integer生成的Integer變量比較的時(shí)候,結(jié)果為false(因?yàn)榉莕ew生成的Integer變量指向的是Java常量池中的對(duì)象,而new出來的對(duì)象指向的是堆中新建的對(duì)象,兩者內(nèi)存地址不同),下面返回的是false
4.兩個(gè)非new出來的Integer對(duì)象,進(jìn)行比較的時(shí)候,如果兩個(gè)變量的值區(qū)間在-127~128之間的時(shí)候,則返回的結(jié)果為true,如果兩個(gè)變量的變量值不在這個(gè)區(qū)間,則比較的結(jié)果為false。下面返回的是true
下面返回的是false
知識(shí)小結(jié):
知識(shí)小結(jié):
- 1、java 基本類型與引用類型的區(qū)別:
基本數(shù)據(jù)類型保存原始值,引用數(shù)據(jù)類型保存的是引用值(引用值就是指在對(duì)象中所處的地理位置) - 2、int是Java中的基本數(shù)據(jù)類型,而Integer是int的封裝類。
- 3、int類型的數(shù)據(jù)直接存儲(chǔ)在內(nèi)存中的棧中,而Integer類型的數(shù)據(jù)則存儲(chǔ)在堆中的對(duì)象中。