Java == 与 equals

==

==的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)。

equals

equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况: 情况1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。 情况2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来比较两个对象的内容是否相等;若它们的内容相等,则返回 true (即,认为这两个对象相等)。 举个例子:

public class test1 {
    public static void main(String[] args) {
        String a = new String("ab"); // a 为一个引用
        String b = new String("ab"); // b为另一个引用,对象的内容一样
        String aa = "ab"; // 放在常量池中
        String bb = "ab"; // 从常量池中查找
        if (aa == bb) // true
            System.out.println("aa==bb");
        if (a == b) // false,非同一对象
            System.out.println("a==b");
        if (a.equals(b)) // true
            System.out.println("aEQb");
        if (42 == 42.0) { // true
            System.out.println("true");
        }
    }
}

说明:

String 中的 equals 方法是被重写过的,因为 object 的 equals 方法是比较的对象的内存地址,而 String 的 equals 方法比较的是对象的值。 当创建 String 类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。如果没有就在常量池中重新创建一个 String 对象。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • swift Dictionary

    字典是一种存储多个相同类型的值的容器。每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。字典中的数据项并没有具体顺序,我们在需要通...

    赵哥窟
  • Jsoup+Htmlunit抓取图片遇到坑

    Jsoup是用于解析HTML,就类似XML解析器用于解析XML。 Jsoup它解析HTML成为真实世界的HTML。

    赵哥窟
  • Flutter Device doesn't support wireless sync

    赵哥窟
  • java面试篇之equals和==的区别究竟在哪?

    打算今天分享的内容其实是和上篇的理论内容有点关系,和接下来需要分享的文章相关的,这篇文章我们就说下引用和值之间的区别,也是java面试会问到的点,掌...

    后端Coder
  • java面试篇之equals和==的区别究竟在哪?

    打算今天分享的内容其实是和上篇的理论内容有点关系,和接下来需要分享的文章相关的,这篇文章我们就说下引用和值之间的区别,也是java面试会问到的点,掌握这个出去...

    后端Coder
  • SQL脚本文件执行器

    查找相关资料,发现 Ant 提供了 SQLExec 组件可以支持SQL文件的执行,测试效果不错。

    朝雨忆轻尘
  • Mapreduce任务实现邮件监控

    Mapreduce任务实现邮件监控     这里主要使用Java自带邮件类实现Mapreduce任务的监控,如果Mapreduce任务报错则发送报错邮件。Map...

    闵开慧
  • 使用 Scalpel 3D 展示界面布局

    无意中了解到 iOS 开发里面有一个叫 Reveal 的神器,用于 UI 调试。要是俺们安卓也能实现类似效果就好了。

    NanBox
  • 详解 equals() 方法和 hashCode() 方法

    Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码。equals()和ha...

    用户1257393
  • Android应用防止so注入防止动态调试参考代码

    由于公司应用需要过安全测试,测试那边说有so注入漏洞,所以找到了这份代码,并成功通过测试。

    用户1696846

扫码关注云+社区

领取腾讯云代金券