java Integer比较的妙用
2010-12-18 09:56
337 查看
public static void main(String[] arg){
Integer a=300000;
Integer b=300000;
Integer c=30;
Integer d=30;
System.out.println(a.equals(b));
System.out.println(a==b); //false
System.out.println(a==300000);
System.out.println(d.equals(c));
System.out.println(d==c);
System.out.println(d==30);
}
public static void main(String[] arg){
Integer a=300000;
Integer b=300000;
Integer c=30;
Integer d=30;
System.out.println(a.equals(b));
System.out.println(a==b); //false
System.out.println(a==300000);
System.out.println( d.equals(c));
System.out.println(d==c);
System.out.println(d==30);
}
打印结果说明-128 到 127的数值,怎么比较都一样,其它的只有equals时才相等。
Java自动装箱是对于从 -128 到 127 之间的信息值,它们在被装箱为对象数据后会在内存中被重用,也就是对于相同的值,返回的是同一个对象。直接与数值比较时,大概是拆箱比较了,就跟 int的比较一样了,所以还是相等的。
转自:http://www.wenhq.com/article/view_392.html
Integer a=300000;
Integer b=300000;
Integer c=30;
Integer d=30;
System.out.println(a.equals(b));
System.out.println(a==b); //false
System.out.println(a==300000);
System.out.println(d.equals(c));
System.out.println(d==c);
System.out.println(d==30);
}
public static void main(String[] arg){
Integer a=300000;
Integer b=300000;
Integer c=30;
Integer d=30;
System.out.println(a.equals(b));
System.out.println(a==b); //false
System.out.println(a==300000);
System.out.println( d.equals(c));
System.out.println(d==c);
System.out.println(d==30);
}
打印结果说明-128 到 127的数值,怎么比较都一样,其它的只有equals时才相等。
Java自动装箱是对于从 -128 到 127 之间的信息值,它们在被装箱为对象数据后会在内存中被重用,也就是对于相同的值,返回的是同一个对象。直接与数值比较时,大概是拆箱比较了,就跟 int的比较一样了,所以还是相等的。
转自:http://www.wenhq.com/article/view_392.html
相关文章推荐
- java常见面试题之Integer,String比较相等及equal案例
- Java的Integer类型用==进行比较原来还有神奇的结果,奥秘是对象缓冲池
- 【Java基础】equals和==的区别以及Integer(-128~127)值的==和equals比较
- Java中Integer与int类型的比较--装箱和拆箱
- java中Integer与int比较
- java中Integer与int比较浅谈
- Java中int和Integer关系比较
- java Integer.ValueOf(int)和new Integer(int)性能比较
- java基本对象Integer,String比较相等及equal案例说明
- 【Java面试题】5 Integer的int 的种种比较?详细分析
- JAVA中Long与Integer比较容易犯的错误
- 【Java】Java中Integer和int比较大小出现的错误
- 1.00 【基础知识之基础类型】 JAVA中Long与Integer比较容易犯的错误
- java两Integer类型用==比较的问题
- java Integer.ValueOf(int)和new Integer(int)性能比较
- Java Integer比较中的那些坑
- Java的String.valueOf 转换 与、空串+类型变量转换与封装类(Integer)的toString方式转换比较。
- Java中int和Integer关系是比较微妙的
- java Integer == 比较
- Java Integer和String的比较操作