int和Integer有什么區(qū)別

int和Integer的區(qū)別
  • Integer是int的包裝類;int是基本數(shù)據(jù)類型,長度為32位(4)字節(jié)剪个。
  • Integer是Java提供的封裝類,在java.lang.Integer包里面。
  • Integer變量必須實例化后才能使用;int變量不需要取董。
  • Integer實際是對象的引用,當(dāng)new一個Integer時无宿,實際上是生成一個指針指向此對象茵汰;而int則是直接存儲數(shù)據(jù)值。
  • Integer的默認(rèn)值是null孽鸡;int的默認(rèn)值是0
關(guān)于Integer和int的深入比較
  1. 由于Integer變量實際上是對一個Integer對象的引用蹂午,所以兩個通過new生成的Integer變量永遠是不相等的(因為new生成的是兩個對象,其內(nèi)存地址不同)彬碱。
Integer i = new Integer(100);
integer j = new Integer(100);
System.out.println(i==j);//false
  1. Integer變量和int變量比較時豆胸,只要兩個變量的值是向等的,則結(jié)果為true(因為包裝類Integer和基本數(shù)據(jù)類型int比較時巷疼,Java會自動拆包裝為int晚胡,然后進行比較,實際上就變?yōu)閮蓚€int變量的比較)
Integer i = new Integer(100);
int j = 100;
System.out.ptintln(i == j); //true
  1. 非new生成的Integer變量和new Integer()生成的變量比較時嚼沿,結(jié)果為false估盘。(因為 ①當(dāng)變量值在-128~127之間時,非new生成的Integer變量指向的是java常量池中的對象骡尽,而new Integer()生成的變量指向堆中新建的對象遣妥,兩者在內(nèi)存中的地址不同
Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false
  1. 對于兩個非new生成的Integer對象,進行比較時攀细,如果兩個變量的值在區(qū)間-128到127之間箫踩,則比較結(jié)果為true,如果兩個變量的值不在此區(qū)間谭贪,則比較結(jié)果為false境钟。
Integer i = 100;
Integer j = 100;
System.out.print(i == j); //true
Integer i = 128;
Integer j = 128;
System.out.print(i == j); //false

對于第4條的原因:
java在編譯Integer i =100 ;時,會翻譯成為Integer i = Integer.valueOf(100);而java API中對Integer類型的valueOf的定義如下:

public static Integer valueOf(int i){
    assert IntegerCache.high >= 127;
    if (i >= IntegerCache.low && i <= IntegerCache.high){
        return IntegerCache.cache[i + (-IntegerCache.low)];
    }
    return new Integer(i);
}

從上面我們可以知道給 Interger 賦予的 int 數(shù)值在 - 128 - 127 的時候俭识,直接從 cache 中獲取吱韭,這些 cache 引用對 Integer 對象地址是不變的,但是不在這個范圍內(nèi)的數(shù)字,則 new Integer (i) 這個地址是新的地址理盆,不可能一樣的.

有了int為什么還要有Integer
  1. 因為Java語言是面向?qū)ο蟮亩幻海瑢ο蠓庋b可以把屬性(數(shù)據(jù)跟處理這些數(shù)據(jù)的方法)結(jié)合在一起。比如Integer就有parseInt()等方法來專門處理int型相關(guān)的數(shù)據(jù)猿规。
  2. 在Java中絕大部分方法或類都是用來處理類類型對象的衷快,如ArrayList和LinkedList集合類就只能以類作為它的存儲對象,而這時如果想把一個int型的數(shù)據(jù)存入list是不可能的姨俩,必須把它包裝成類蘸拔,也就是Integer才能被List所接受。
補充:Integer的裝箱和拆箱
  1. 自動裝箱
    將基本數(shù)據(jù)類型轉(zhuǎn)化為對象
Integer i=100;
//等價于Integer num = Integer.valueOf(100);
  1. 自動拆箱
    將對象轉(zhuǎn)化為基本數(shù)據(jù)類型
Integer i = 100;/ /聲明一個Integer對象
i++;// 進行計算時自動拆箱
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末环葵,一起剝皮案震驚了整個濱河市调窍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌张遭,老刑警劉巖邓萨,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異菊卷,居然都是意外死亡缔恳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門洁闰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歉甚,“玉大人,你說我怎么就攤上這事扑眉≈叫梗” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵腰素,是天一觀的道長聘裁。 經(jīng)常有香客問我,道長耸弄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任卓缰,我火速辦了婚禮计呈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘征唬。我一直安慰自己捌显,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布总寒。 她就那樣靜靜地躺著扶歪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上善镰,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天妹萨,我揣著相機與錄音,去河邊找鬼炫欺。 笑死乎完,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的品洛。 我是一名探鬼主播树姨,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼桥状!你這毒婦竟也來了帽揪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤辅斟,失蹤者是張志新(化名)和其女友劉穎转晰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砾肺,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡挽霉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了变汪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侠坎。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖裙盾,靈堂內(nèi)的尸體忽然破棺而出实胸,到底是詐尸還是另有隱情,我是刑警寧澤番官,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布庐完,位于F島的核電站,受9級特大地震影響徘熔,放射性物質(zhì)發(fā)生泄漏门躯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一酷师、第九天 我趴在偏房一處隱蔽的房頂上張望讶凉。 院中可真熱鬧,春花似錦山孔、人聲如沸懂讯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褐望。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘫里,已是汗流浹背实蔽。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留减宣,地道東北人盐须。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像漆腌,于是被迫代替她去往敵國和親贼邓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容