面试题~ equals() 和 == 区别

Lana ·
更新时间:2024-09-20
· 751 次阅读

= = :运算符 可以使用在基本数据类型变量和引用数据类型变量中 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同)
如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体,补充: == 符号使用时,必须保证符号左右两边的变量类型一致。 equals()的使用:

是一个方法,而非运算符

只能适用于引用数据类型

Object类中equals()的定义:
public boolean equals(Object obj) {
return (this == obj);
}
说明:Object类中定义的equals()和**==**的作用是相同的:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体

像String、Date、File、包装类等都重写了Object类中的equals()方法。重写以后,比较的不是
两个引用的地址是否相同,而是比较两个对象的"实体内容"是否相同

通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的实体内容是否相同。那么,我们就需要对Object类中的equals()进行重写
重写的原则:比较两个对象的实体内容是否相同。


作者:罗zy



面试题 equals 面试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号