背景和問題
在看別人整理的資料時,看到如下一段代碼:
package com.sitech.test;/** * 自動裝箱和拆箱 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 } }
如果沒有看過源碼的同學(xué)肯定覺的答案要么是2個true要么是2個false。我剛看到這一段代碼的時候也覺的是2個true,感覺自己100%確定,不過真正運(yùn)行之后才發(fā)現(xiàn)傻眼了,一個true一個false,這是Bug吧。其實(shí)LZ以前看過一部分Integer源碼了,但是現(xiàn)在想想好像看的不認(rèn)真,尷尬了。于是被這個問題觸發(fā)了LZ要認(rèn)真看一次Integer源碼了(我要認(rèn)真了,哈哈)。