zoukankan      html  css  js  c++  java
  • "==" 与 “equals”

    “==”:

      “==”或等号操作在Java编程语言中是一个二元操作符,用于比较原生类型和对象。(操作符不支持重载overloading)

      “==”对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时,“==”操作将返回true,否则返回false。

    “equals”:

      用于检查两个对象的相等性。

      默认的equals方法实现是与“==”操作一样的,基于业务需求重写equals方法是最好的实践之一,同样equals与compareTo保持一致也不足为奇,以至于存储对象在Treemap或treeset集合中时,将使用compareTo方法检查相等性,行为是一致的。

    区别:

      ==与equals的主要区别是:==常用于比较原生类型,而equals()方法用于检查对象的相等性。

      ==的行为对于每个对象来说与equals()是完全相同的,但是equals()可以基于业务规则的不同而重写(overridden )。

    字符串的==和equals对比

      如果==和equals()用于比较对象,当两个引用地址相同,==返回true。而equals()可以返回true或者false主要取决于重写实现。最常见的一个例子,字符串的比较,不同情况==和equals()返回不同的结果。

      String类型重写了equals(),比较的是两个字符串的内容。

    ==与equals在对象之间的对比

      当你比较的两个引用指向的对象是Object的类型的时候,那么你看到的结果和==是一致的,因为默认的equals方法实现仅仅比较的内存地址。

    总结:

    1. 使用==比较原生类型如:boolean、int、char等等,使用equals()比较对象。
    2. ==返回true如果两个引用指向相同的对象,equals()的返回结果依赖于具体业务实现
    3. 字符串的对比使用equals()代替==操作符

      

  • 相关阅读:
    winform中textbox属性Multiline=true时全选
    golang中的类和接口的使用
    beego上传文件
    golang 字符串操作实例
    golang操作文件
    golang获取程序运行路径
    ECharts使用心得
    es6新特性分享
    es6分享——变量的解构赋值
    NPM使用前设置和升级
  • 原文地址:https://www.cnblogs.com/yl-saber/p/6902772.html
Copyright © 2011-2022 走看看