关于java:Java中和equals有什么区别

原文网址:​​Java中==和equals有什么区别_IT利刃出鞘的博客-CSDN博客​​

简介

本文介绍java中==和equals的区别。

分享Java技术星球(自学精灵),有面试真题和架构技术等:​​https://learn.skyofit.com/​​

区别

区别是:一个是运算符,一个是办法。

==

比拟变量的值是否雷同。

  • 如果比拟的对象是根本数据类型,则比拟数值是否相等;
  • 如果比拟的是援用数据类型,则比拟的是对象的内存地址是否相等。

因为Java只有值传递,对于==来说,不论是比拟根本数据类型,还是援用数据类型的变量,其比拟的都是值,只是援用类型变量存的值是对象的地址。援用类型对象变量其实是一个援用,它们的值是指向对象所在的内存地址。

equals办法

比拟对象的内容是否雷同。

equals()办法存在于Object类中,而Object类是所有类的父类。在Object类中定义了equals办法:

public boolean equals(Object obj) {
    return (this == obj);
}
  1. 如果类未重写equals办法

<!—->

  1. 调用equals时,会调用Object中的equals办法(理论应用的也是==操作符)

<!—->

  1. 如果类重写了equals办法

<!—->

  1. 调用equals时,会调用该类本人的equals办法(个别是比拟对象的内容是否雷同)。比方:

<!—->

  1. String:比拟字符串内容是否雷同;
  2. Integer:比拟对应的根本数据类型int的值是否雷同。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理