java中同为Integer的比较

来源:互联网 发布:淘宝怎么发链接到微信 编辑:程序博客网 时间:2024/04/30 11:23

java中同为Integer的比较

···java
public class Demo4 {
public static void main(String[]args){
Integer i1 = 1;
System.out.println(i1.getClass().getName());
Integer i2 = 1;
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i1 == i2);
System.out.println(i3 == i4);
Integer i5 = new Integer(1);
Integer i6 = new Integer(1);
System.out.println(i5 == i6);
Integer i7 = new Integer(‘1’);
System.out.println(i7.getClass().getName());//查看变量类型
Integer i8 = new Integer(‘1’);
System.out.println(i7 == i8);
}
}
运行结果:
java.lang.Integer
true
false
false
java.lang.Integer
false
···

Integer维护了一个-128到127的数组缓存,两个对象值如果在这个范围就不会新建对象了,这时候两个引用都指向同一个对象
在实际工作和使用Java当中,比较两个Integer就使用equals方法就可以了,这个问题也就是单纯作为Java考试之类的功能存在,实际工作中有谁会拿==比较两个Integer对象是否相等