== 和 equals 的区别是什么?
一、对象类型不同
1、equals():是超类Object中的方法, ==:是操作符。
二、比较的对象不同
1、equals():用来检测两个对象是否相等,即两个对象的内容是否相等。
2、==:用于比较引用和比较基本数据类型时具有不同的功能,具体如下:
- 基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。
- 引用数据类型:比较的是两个引用对象的地址是否相同
三、运行速度不同**
1、equals():没有==运行速度快。
2、:运行速度比equals()快,因为只是比较引用。
扩展资料:
equals()和==的源码定义:
public boolean equals(Object obj) {
return (this == obj);
}
由equals的源码可以看出这里定义的equals与==是等效的(Object类中的equals没什么区别),不同的原因就在于有些类(像String、Integer等类)对equals进行了重写。
参考|侵删
链接:https://zhidao.baidu.com/question/43897995.html
作者:crazy
链接:https://zhuanlan.zhihu.com/p/338350987
作者:终端研发部