作者:沸腾的热水_948 | 来源:互联网 | 2023-05-17 00:11
首先我们做个试验在基础类int的对象类中创建两对象publicstaticvoidmain(String[]args){Integera128;Integerb128;bool
首先我们做个试验
在基础类int的对象类中创建两对象
public static void main(String[]args) {
Integer a = 128;
Integer b = 128;
booleanc = (a == b);
System.out.println(c);
}
最后输出的结果实false。
publicstatic void main(String[] args) {
Integer a = 128;
Integer b = 128;
booleanc = (a.equals(b));
System.out.println(c);
}
而用equals比较的时候输出的是true;
public static void main(String[]args) {
Integer a = 127;
Integer b = 127;
booleanc = (a == b);
System.out.println(c);
}
而127和127比较的时候输出的true。
这是因为int基础类最大只能为127,在它的对象类中-128到127的数保存在静态区,而大于127的数保存在对象区,所以直接比较,相当于比较他们的地址,所以就是不相等的,但是比较他们的内容确实一样的。
如有错误请大家的指导。