轉自https://www.cnblogs.com/guodongdidi/p/6953217.htmlhtml
import java.lang.Integer; public class intDemo{ public static void main(String[] args){ boolean eq = (int.class == Integer.class); System.out.println(String.format("int.class與Integer.class相等?%b",eq)); //由於new生成的是兩個對象,其內存地址不一樣, //因此兩個經過new生成的Integer變量永遠是不相等的。 Integer i_new_100 = new Integer(100); Integer j_new_100 = new Integer(100); System.out.println(String.format("值相同的兩個new生成的Integer相等?%b",i_new_100 == j_new_100)); //Integer和基本數據類型int比較時,java會自動拆包裝爲int, //而後進行比較,實際上就變爲兩個int變量的比較。 Integer i_integer = new Integer(100); int j_int = 100; System.out.println(String.format("值相同的int與Integer對象相等?%b",i_integer == j_int)); //兩個非new生成的Integer對象進行比較, //若是兩個變量的值在區間-128 ~ 127之間, //則比較結果爲true //不然比較結果爲false Integer i_100 = 100; Integer j_100 = 100; System.out.println(String.format("兩個值爲100的非new生成Integer對象相等?%b",i_100 == j_100)); Integer i_128 = 128; Integer j_128 = 128; System.out.println(String.format("兩個值爲100的非new生成Integer對象相等?%b",i_128 == j_128)); } }