一句话区别:==比较的是内存地址,equals比较的是值内容
结论:
从以下三点展开:
基本数据类型、字符串、对象
- 对于基本数据类型:只有==,没有equals.
- 对于字符串:==比较的是内存地址,equals比较的是值,需要在意的是new了一个String,会产生不同的对象,内存地址会发生变化
- 对于对象:==比较的是内存地址,equals比较的是值
如: String s1="abc";
String s2="abc";
s1.equals(s2) 是true 因为equals比较的是对象的内容
而 s1==s2 是false 因为当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否相同,s1和s2创建了不同的对象,所以内存地址肯定不同。