在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创建了不同的对象,所以内存地址肯定不同。
标签:false,区别,对象,s2,s1,equals,内存地址 From: https://www.cnblogs.com/w852894903/p/17461011.html