==和equals的区别

发布时间 2023-06-06 16:48:46作者: 丶Ronnie

在JAVA中,==与equals都有比较判断对象是否相等的作用,但具体用法却并不相同。

==是运算符号,而equals则属于方法。

当==两边的对象属于基本类型时,==的作用仅是比较对象的值是否相等,如果相等返回true,否则返回false;

当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否一致,如果同时指向同一地址,则返回true,否则返回false.

equals两边对象只能属于引用数据类型,因为equals是方法,所以它是如何具体判断对象是否相等是根据程序而定的,

equals是属于 超类object类,默认是判断内存地址是否相同,

但在object的子类中可以重写equals方法,如在String类中只是比较对象内容是否一致,一致 则返回true,否则返回false

比如:

String s1=“abc”;

String s2=“abc”;

s1.equals(s2) 是true 因为equals比较的是对象的内容

而 s1==s2 是false  因为当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否相同,

s1和s2创建了不同的对象,所以内存地址肯定不同。