==和equals()区别

对于“==”,比较的是值是否相等

如果作用于基本数据类型(byte,short,char,int,float,double,long,boolean)的变量,则直接比较其存储的 **“值”**是否相等;

如果作用于引用类型的变量,则比较的是所指向的对象的地址

对于equals()方法

注意:equals方法不能作用于基本数据类型的变量

如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址
默认情况下也就是从超类Object继承而来的equals方法与‘==’是完全等价的,比较的都是对象的内存地址,但我们可以重写equals方法,使其按照我们的需求的方式进行比较。

例如String类重写了equals方法,使其比较的是字符的序列,而不再是内存地址。比较的时候:
先比较当前对象的地址和要比较的对象的地址是否相等,若相等,则返回true

如果不相等,则判断是否为String的实例化对象,如果是,在判断长度是否相等,再判断数组的每个值,字母是否相等。如果都相等,则返回true.

==和equals()区别