分享

java之关系运算符

 流曲频阳 2017-03-23
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1 == n2);    //结果为false
System.out.println(n1 != n2);    //结果为true
因为==与!=都是比较对象的句柄,n1和n2尽管Integer对象相同,对象内容相同,但是句柄不同
2. equals()的使用
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1.equals(n2));    //ture
equals比较的是对象内容,所以为ture;
class Value {
int i;
}
public class EqualsMethod2 {
public static void main(String[] args) {
Value n1 = new Value();
Value n2 = new Value();
n1.i = n2.i = 10;
System.out.println(n1.equals(n2));   //false
}
}
此时的结果又变回了false!这是由于 equals()的默认行为是比较句柄。所以除非在自己的新类中改变了
equals(),否则不可能表现出我们希望的行为。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多