Integer類是int的封裝類型火欧,它用關(guān)鍵字final來定義,意味著對象一旦創(chuàng)建就不能改變茎截;java中苇侵,JVM會自動創(chuàng)建值的范圍是-127~128所有對象,并且是單例的企锌,所以當我們需要一個值在-127~128之間的Integer對象時榆浓,JVM不會創(chuàng)建新的對象,因此使用==和equals的結(jié)果是相同的撕攒。如果我們需要的Integer對象的值不再這個范圍內(nèi)哀军,JVM會重新創(chuàng)建一個新的對象,使用==是比較兩個對象的引用是否相等(內(nèi)存地址)打却,使用equals比較的是對象的值是否相等(equals被重寫)。
例如:
Integer a = 12谎倔;
integer b = 12;
System.out.println(a==b);//結(jié)果為true柳击;
System.out.println(a.equals(b));//結(jié)果為true;
Integer a = 234;
Integer b = 234;
System.out.println(a==b);//結(jié)果為false片习;
System.out.println(a.equals(b));//結(jié)果為true捌肴;