當數值范圍是[-128,127],比如a=12,b=12,用==去比較得出的是true
當數值范圍超出[-128,127],比如a=12345,b=12345,用==得出的結果是false。
因為超出范圍時,Integer會去new一個對象,比較的是兩個對象的地址。
當用“==”進行比較時,jvm默認是比較數據在java堆的地址。int是一種基本數據類型,jvm會自動將Integer轉成int數值進行比較。
在Integer類中,有一個內部靜態類IntegerCache ,用來支持自動拆箱和裝箱。
比較兩個Integer的值是否相同,方法比較多,推薦用Objects.equals(a, b),這個還可以避免一些空指針問題的出現。