Integer类是int行数据的包装类, Integer i=new Integer(3); 和 Integer j=new Integer(3);是创建了两个Integer对象,当用"=="符比较两个对象时,比较的是地址,地址相同返回true;而Integer继承Object类并重写了equals方法,只要两个对象的int值相等就返回true.另外,Java中存在字节常量池, Integer i1=3; Integer j1=3;这两个地址相同,因为3在-128到127之间,当在这个范围给Integer对象赋值时,不会重新创建对象,例如Integer a = 188; Integer b = 188;这两个就是两个不同的对象,如果用"=="比较,则返回false,而equals方法只要值相等就返回true. |