zoukankan      html  css  js  c++  java
  • 细说 equals(o1,o2) 与 “o1 == o2” 区别?

    equals(o1,o2) 与 “o1 == o2” 区别?

    首先,equals(o1,o2)只能用于对象的比较,不能用于基本数据类型(如 int、double等8种)。
    (1)那么基本数据类型的相等比较用“==”而不能用equals().

    接下来说,对象的相等比较,可以用equals(o1,o2) 与 “o1 == o2”,它们的区别是:

    简单说:equals(o1,o2)比较的是两对象的内容;“o1 == o2”比较的是两对象的地址。

    详述:

    (1)先挑直观的说,“o1 == o2”比较的是对象o1和o2在内存中是一个位置还是分存两个位置?我们在操作对象时,都是通过引用变量来进行的。同一个对象,可以与多个引用变量挂钩。换句话说,多个不同的引用变量可指向同一个对象(一个对象一个地址)。“o1 == o2”就是检查引用变量o1与引用变量o2所指向是否为同一个对象(同一个地址),所以又说“o1 == o2”比较的是对象的地址。

    (2)包装类型的对象比较时,是对应值的比较。Object有默认的equals方法使用的“==”比较对象地址,所有对象都继承自Object,同样继承了equals方法。可重写equals覆盖,同时重写hashCode()方法。

  • 相关阅读:
    EL表达式 (详解)
    宜信面试整理
    Java 合并两个排序数组
    动态规划初识(爬楼梯问题)
    二叉树的最小深度
    ElasticSearch 单字符串多字段查询评分问题
    ES 分词
    汽车之家 面试总结
    浪潮之巅读书笔记
    闲徕互娱 面试总结
  • 原文地址:https://www.cnblogs.com/bridgestone29-08/p/14260357.html
Copyright © 2011-2022 走看看