java中的对象比较
大家看看这段代码:public class IntergerError { public static void main(String[] args) { // TODO Auto-generated method stub Integer num1 = new Integer(100); Integer num2 = new Integer(100); System.out.println(compare(num1, num2)); } private static boolean compare(Integer num1, Integer num2) { boolean a = (num1 == num2); boolean b = (num1 > num2); boolean c = (num1 < num2); return a||b||c; } }
你的答案是什么,返回一定是true?哈哈,再思考一下。
这段代码的返回值为false,这就有些不明白了,为什么会这样,既然用的是或,那不是大就是小或者是等于,肯定有一个成立。
上面也是我的想法,后来网上找了一些资料,总结起来大概是:“==”比较简单类型的值或者是比较对象是不是引用了同一个对象,至于“》”和“《”对于对象来说也就没有意义了。
所以比较对象的值的时候最好还是用equal()方法,或者是去的对象的值来进行比较。
其实之前这个事情也没有引起注意,今天遇到了,基础不牢惹的祸。望大牛们批评指正,分享你的经验。
补充:软件开发 , Java ,