溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中int與Integer的區(qū)別是什么

發(fā)布時(shí)間:2021-11-30 10:55:24 來(lái)源:億速云 閱讀:139 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Java中int與Integer的區(qū)別是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Java中int與Integer的區(qū)別是什么”吧!

nJava 是一種強(qiáng)數(shù)據(jù)類型的語(yǔ)言,因此所有的屬性必須有一個(gè)數(shù)據(jù)類型。就像麥德龍超市一樣,想要進(jìn)去購(gòu)物,先要有一個(gè)會(huì)員卡才行(刷卡入內(nèi))。

PS:Java 10 有了局部變量類型推導(dǎo),可以使用 var 來(lái)替代某個(gè)具體的數(shù)據(jù)類型,但在字節(jié)碼階段,Java 的變量仍有著明確的數(shù)據(jù)類型,且局部變量類型推導(dǎo)有著很多限制和不完善之處,也不是目前主流的應(yīng)用版本,所以這里不做深入討論。

回到主題,要理解 int Integer 的區(qū)別,要先從 Java 的基礎(chǔ)數(shù)據(jù)類型說(shuō)起。

1、基本數(shù)據(jù)類型

在 Java 中,一共有 8 種基本類型(primitive type),其中有 4 種整型、2 種浮點(diǎn)類型、1 種用于表示 Unicode 編碼的字符類型 char 和 1 種用于表示真假值的 boolean 類型。

  • 4 種整型:int、short、long、byte

  • 2 種浮點(diǎn)類型:floatdouble

  • 字符類型:char

  • 真假類型:boolean

基本數(shù)據(jù)類型是指不可再分的原子數(shù)據(jù)類型,內(nèi)存中直接存儲(chǔ)此類型的值,通過(guò)內(nèi)存地址即可直接訪問(wèn)到數(shù)據(jù),并且此內(nèi)存區(qū)域只能存放這種類型的值,int 就是 Java 中一種常用的基礎(chǔ)數(shù)據(jù)類型。

2、包裝類及其作用

因?yàn)?Java 的設(shè)計(jì)理念是一切皆是對(duì)象,在很多情況下,需要以對(duì)象的形式操作,比如 hashCode() 獲取哈希值,或者 getClass() 獲取類等。

2.1包裝類的作用

Java 中每個(gè)基本數(shù)據(jù)類型都對(duì)應(yīng)了一個(gè)包裝類,而 int 對(duì)應(yīng)的包裝類就是 Integer,包裝類的存在解決了基本數(shù)據(jù)類型無(wú)法做到的事情泛型類型參數(shù)、序列化、類型轉(zhuǎn)換、高頻區(qū)間數(shù)據(jù)緩存等問(wèn)題。

基礎(chǔ)類型包裝類型
intInteger
shortShort
byteByte
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

3、int 和 Integer 的區(qū)別

int 和 Integer的區(qū)別主要體現(xiàn)在以下幾個(gè)方面:

  • 數(shù)據(jù)類型不同int 是基礎(chǔ)數(shù)據(jù)類型,而 Integer 是包裝數(shù)據(jù)類型;

  • 默認(rèn)值不同int 的默認(rèn)值是 0,而 Integer 的默認(rèn)值是 null;

  • 內(nèi)存中存儲(chǔ)的方式不同:int 在內(nèi)存中直接存儲(chǔ)的是數(shù)據(jù)值,而 Integer 實(shí)際存儲(chǔ)的是對(duì)象引用,當(dāng) new 一個(gè) Integer 時(shí)實(shí)際上是生成一個(gè)指針指向此對(duì)象;

  • 實(shí)例化方式不同:Integer 必須實(shí)例化才可以使用,而 int 不需要;

  • 變量的比較方式不同:int 可以使用 == 來(lái)對(duì)比兩個(gè)變量是否相等,而 Integer 一定要使用 equals 來(lái)比較兩個(gè)變量是否相等。

感謝各位的閱讀,以上就是“Java中int與Integer的區(qū)別是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Java中int與Integer的區(qū)別是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI