对于Object类来说 , equals和== 是一样的 , 可以看一下Object类的 equals方法:
此时的equals 和 == 比较的都是 对象的内存地址 , 如果是基本数据类型 , 比较的是值
java中 , 所有类都是Object的子类 , 对于一些JDK提供的基础类 , 很多都复写了Object的 equals方法 , 比如String , 复写之后 , 比较的是字符串的内容 , 又比如 Long , 比较的是数值 ,
还有Date , 比较的是时间戳 , 如果没有复写Object的 equals方法 , 那么这个对象的 equals和 == 是一样的
equals()比较对象本身是否相同
==比较内存中的存放地址是否相同
==使用运算符用来比较两个原生类型数据的值是否相同的
equals是用来比较两个引用类型数据是否相同用的
equals是Object类中定义的方法,因为所有类都默认继承自Object,所以所有类都有这个方法,equals方法的实现是可以通过重写这个方法来变更的
java基本数据类型的变量,变量直接存储的是“值”,因此在用关系操作符==来进行比较时,比较的就是 “值” 本身。而对于引用类型的变量,存储的并不是 “值”本身,而是于其关联的对象在内存中的地址。equals比较的内存地址。
equals 比较两个变量所引用的对象的内容是否一样;
== 比较两个变量是不是引用了同一个对象