Java常见面试题:equals和==的区别和联系?

本文详细解析了Java中equals方法与==运算符的区别。对于基本数据类型,==比较数值;而对于引用数据类型,==比较内存地址。Object类中的equals默认行为与==相同,但String、Date等类重写了equals,用于比较对象内容。理解这些差异对于Java编程至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚学Java的时候是这么认为的:

啊~那个,equals用来比较值是否相等,==用来比较地址

错了吗?大错特错!

分开来说一下

==

基本数据类型:两个变量保存的数值是否相等(不同类型会隐式转换

引用数据类型:比较两个引用是否指向同一个对象实体(地址是否相同)(两边必须类型相同

equals()

只能用在引用数据类型

默认java.lang.Object中的equals()使用的是==,所以在引用数据类型没有重写equals()的情况下与==的作用是一样的:

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

String, Date, File, 包装类都重写了equals()方法,一般重写以后,比较的是两个对象中的内容是否相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值