刚打开CSDN,一个好友发了一个短信给我,问了一个问题://Integer类下面的equals方法,如果这么用,会出现编译错误么?new Integer(10).equals(10);
我觉得没啥问题嘛,因为一个Integer对象和另一个被boxing的int值比较,没有问题。但是我后来在Eclipse下面敲了一下代码:System.out.println(new Integer(10).equals(new Integer(10)));//最原始的用法,没问题;
System.out.println(new Integer(10).equals(10));//equals里面的10被编译器auto-boxing成Integer对象,也没有问题;
System.out.println(new Integer(130).equals(11111));//为什么这个没有编译问题呢?11111已经超过了auto-boxing的范围了然后查看Eclipse下面对于Integer类的equals方法的解释:
Compares this object to the specified object. The result is true if and only if the argument is not null and is an Integer object that contains the same int value as this object.
也都提到了两边要是同等的对象才能比较啊?难道是我脑子短路了么?
我觉得没啥问题嘛,因为一个Integer对象和另一个被boxing的int值比较,没有问题。但是我后来在Eclipse下面敲了一下代码:System.out.println(new Integer(10).equals(new Integer(10)));//最原始的用法,没问题;
System.out.println(new Integer(10).equals(10));//equals里面的10被编译器auto-boxing成Integer对象,也没有问题;
System.out.println(new Integer(130).equals(11111));//为什么这个没有编译问题呢?11111已经超过了auto-boxing的范围了然后查看Eclipse下面对于Integer类的equals方法的解释:
Compares this object to the specified object. The result is true if and only if the argument is not null and is an Integer object that contains the same int value as this object.
也都提到了两边要是同等的对象才能比较啊?难道是我脑子短路了么?
解决方案 »
- 正则匹配Html标签
- 深拷贝浅拷贝,谁能说说这两个copy的区别,尽量说深一点,最好自己试过
- 浮点数包装类的最小值:MIN_VALUE与MIN_NORMAL的区别???
- java 基础问题,关于TreeSet...
- 查询问题:什么时候用'"+ +"'什么时候用="+ +"什么时候用''
- 谢谢了,是连接方面的问题?各位朋友,谢谢各位了,紧急,需要
- 如何在java类中实现将数据导出为word文档功能
- 求JDBC安装过程
- new String(byte[])时,若含-97,-98等数据时,会自动变为63,如何解决???
- 请问这里的method为什么必须是public?
- 如何熟悉掌握java的api的核心类
- 怎么样提取出这三个文件名?
我看你太较真了!
http://blog.csdn.net/ZangXT/archive/2008/11/19/3334030.aspx论坛某人写的,解释得很清楚
private final int value; public Integer(int value) {
this.value = value;
} public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
如果不在这个范围 new Integer()
而==才是比较是否完全一致,包括内存地址和属性值