Integer 是int的封装对象,java为了提高效率,初始化了-128--127之间的整数对象,所以在赋值在这个范围内都是同一个对象。你写的不在这一范围内,所以两个不同的对象,它们的地址自然就不同,所以x==y为false。如果你写-128-127之间的值,x==y就为true.
public class test {
public static void main(String args[]) {
Integer x = 128;
Integer y =128;
System.out.println(x==y);
System.out.println(y.equals(x));
Integer a = 127;
Integer b = 127;
System.out.println("a==b "+(a==b));
}}
equals 方法就不多说了,大家都知道。equals只针对对象的内容,不关心地址。
Integer与int比较,int是基本类型,比较的的值。