背景和問(wèn)題
在看別人整理的資料時(shí),看到如下一段代碼:
package com.sitech.test;/** * 自動(dòng)裝箱和拆箱 jdk1.6 * @author liaowp * */public class TestInteger { public static void main(String[] args) { Integer i1 = 80, i2 = 80, i3 = 999, i4 = 999; System.out.println(i1 == i2);//true System.out.println(i3 == i4);//false } }
如果沒(méi)有看過(guò)源碼的同學(xué)肯定覺(jué)的答案要么是2個(gè)true要么是2個(gè)false。我剛看到這一段代碼的時(shí)候也覺(jué)的是2個(gè)true,感覺(jué)自己100%確定,不過(guò)真正運(yùn)行之后才發(fā)現(xiàn)傻眼了,一個(gè)true一個(gè)false,這是Bug吧。其實(shí)LZ以前看過(guò)一部分Integer源碼了,但是現(xiàn)在想想好像看的不認(rèn)真,尷尬了。于是被這個(gè)問(wèn)題觸發(fā)了LZ要認(rèn)真看一次Integer源碼了(我要認(rèn)真了,哈哈)。