zoukankan      html  css  js  c++  java
  • equals,==

    public class sss {
    public static void main(String[] args) {
    Integer n1 = new Integer(47);
    Integer n2 = new Integer(47);
    System.out.println(n1 == n2); //false
    System.out.println(n1.equals(n2)); //true
    Value v1 = new Value(); v1.i=100;
    Value v2 = new Value(); v2.i=100;
    System.out.println(v1.equals(v2)); //false
    }
     
    }
     
    class Value {
    int i;
    }

    第一个输出结果为false:==,!=比較的是对象的引用,尽管对象同样,引用不同,所以输出false
    第二个输出结果为true: equals 比較的是对象,由于Integer重写了equals方法(equals 方法默认比較的是引用,除非覆盖类中的equals方法)
    @Override
    public boolean equals(Object o) {
    return (o instanceof Integer) && (((Integer) o).value == value);
    }
    第三个输出结果为false:
         equals 方法默认比較的是引用,除非覆盖类中的equals方法,Value类 没有覆盖equals方法,调用了Object的equals方法(例如以下),比較了引用
        public boolean equals(Object o) {
            return this == o;
        }  


  • 相关阅读:
    C++总结
    Perl注释格式
    处理压力测试中的问题
    C++标准库中的时间函数
    C语言中如何使用宏 转载
    探索C++的秘密之详解extern "C"
    调试代码的技巧
    又长一岁
    [转]pycharm的一些快捷键
    dizhi
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7039579.html
Copyright © 2011-2022 走看看