在基础类int的对象类中创建两对象
public static void main(String[] args) {
Integer a = 128;
Integer b = 128;
boolean c = (a == b);
System.out.println(c);
}
最后输出结果为false,
public static void main(String[] args) {
Integer a = 128;
Integer b = 128;
boolean c = (a.equals(b));
System.out.println(c);
}
而用equals比较的时候输出的是true;
public static void main(String[] args) {
Integer a = 127;
Integer b = 127;
boolean c = (a == b);
System.out.println(c);
}
而127和127比较的时候输出的true。
这是因为int基础类最大只能为127,在它的对象类中-128到127的数保存在静态区,而大于127的数保存在对象区,所以直接比较,相当于比较他们的地址,所以就是不相等的,但是比较他们的内容确实一样的。