转载: https://zhidao.baidu.com/question/61622858.html
== 是一个比较运算符, 基本数据类型比较的是值, 引用数据类型比较的是地址值.
(比较地址值即是指是否为同一个对象的引用)
equals()是一个方法, 只能比较引用数据类型. 重写前比较的是地址值, 重写后比一般是比较对象的属性.
扩展资料:
java 中的数据类型, 可分为两类:
1. 基本数据类型, 也称原始数据类型.
byte,short,char,int,long,float,double,boolean, 他们之间的比较, 应用双等号(==), 比较的是他们的值.
2. 复合数据类型.
当他们用 (==) 进行比较的时候, 比较的是他们在内存中的存放地址, 所以, 除非是同一个 new 出来的对象, 他们的比较后的结果为 true, 否则比较后结果为 false.
JAVA 当中所有的类都是继承于 Object 这个基类的, 在 Object 中的基类中定义了一个 equals 的方法, 这个方法的初始行为是比较对象的内存地址.
但在一些类库当中这个方法被覆盖掉了, 如 String,Integer,Date 在这些类当中 equals 有其自身的实现, 而不再是比较类在堆内存中的存放地址了.
对于复合数据类型之间进行 equals 比较, 在没有覆写 equals 方法的情况下, 他们之间的比较还是基于他们在内存中的存放位置的地址值的, 因为 Object 的 equals 方法也是用双等号 (==) 进行比较的, 所以比较后的结果跟双等号 (==) 的结果相同.
来源: http://www.bubuko.com/infodetail-2962367.html