equals和==方法比较--Long中equals源码分析

Posted teach

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了equals和==方法比较--Long中equals源码分析相关的知识,希望对你有一定的参考价值。

equals方法是Object类中的方法,java中所有的对象均继承自Object类,也就继承了equals方法,下面是Object类中equals方法的实现,

public boolean equals(Object obj) {
        return (this == obj);
    }

可以看到,equals方法使用的就是==的比较方式,那么如果是两个引用类型,比较的当然是两个引用地址。

java又规定所有继承自Object的类都可以重写equals方法,即实现自己的比较逻辑,但Long这个包装类(其他的包装类也是如此)没有重写了equals方法,而是进行了重载,如下

public boolean equals(Object obj) {
        if (obj instanceof Long) {
            return value == ((Long)obj).longValue();
        }
        return false;
    }

 

以上是关于equals和==方法比较--Long中equals源码分析的主要内容,如果未能解决你的问题,请参考以下文章

Java,重写Comparable比较方法,重写equals方法, Long 与 Long equals,Long 与 Long == ,Long 与 long ==

Java,重写Comparable比较方法,重写equals方法, Long 与 Long equals,Long 与 Long == ,Long 与 long ==

两个 Long 类型为什么不能直接用==比较

equals和==方法比较

equals和==的区别

简述java中equals()方法和==的区别