== 和 equals 的区别是什么?

== 和 equals 的区别是什么?

1.对象类型不同
1.equals():是超类object中的方法。
2.==:是操作符。

2.比较的对象不同
1.equals():用来检测两个对象是否相等,即两个对象的内容是否相等。
2.==:用来比较引用和比较基本数据类型时具有不同的功能,具体如下:
1.基础数据类型:比较的是他们的值是否相等,比如两个int类型的类型,比较的是变量的值是否一样
2.引用数据类型:比较的是引用的地址是否相同,比如说新建的两个User对象,比较的是两个对象的地址是否一样

3.运行速度不同
1.equals():没有运行速度快
2.
:运行速度比equals()快,因为==只是比较引用

扩展资料:
equals()和==的源码定义:

public boolean equals(Object obj) {
    return (this == obj);
}

从equals的源码可以看出这里定义的equals与==是等效的(Object类中的equals没有什么区别),
不同的原因在于有些类(像String、Integer等类)对equals进行了重写。

但是没有对equals进行重写的类就只能从Object类中继承equals方法,其equals方法与==就也是等效的了,除非在此类中重写了equals方法。

你可能感兴趣的:(java,jvm,开发语言)