首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

==和equals的区别

这个问题看了许多人的回答,但感觉都不是很满意; 基本数据类型做比较的时候,应该使用==; 引用类型做比较的时候两个都可以;  ==比较的是内存地址,equals方法在object里源代码也是用=...=来比较,比较的也是内存地址; 但有特殊的例子,比如在string中,==号比较的是内存地址,但是equals比较的是值,因为string这个类比较特殊,JDK帮我们重写了string的equals方法...,所以在string里equals比较的是值。...有的时候也需要我们重写equals方法,因为在它是object类的一个方法,我们需要比较对象的时候最好是重写该方法,比如我们自定义的类做HashMap的Key时,我们经常需要重写equals方法,并且用...equals方法的返回结果是布尔类型的,可以直接用来做判断,但要注意的是用equals方法来比较对象的时候,第一个对象一定得检查是不是存在了,不然会出现空指针异常;

43620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ==和equals的区别

    基本数据类型做比较的时候,应该使用==; 引用类型做比较的时候两个都可以;  ==比较的是内存地址,equals方法在object里源代码也是用==来比较,比较的也是内存地址; 但有特殊的例子,比如在...string中,==号比较的是内存地址,但是equals比较的是值,因为string这个类比较特殊,JDK帮我们重写了string的equals方法,所以在string里equals比较的是值。...有的时候也需要我们重写equals方法,因为在它是object类的一个方法,我们需要比较对象的时候最好是重写该方法,比如我们自定义的类做HashMap的Key时,我们经常需要重写equals方法,并且用...equals方法的返回结果是布尔类型的,可以直接用来做判断,但要注意的是用equals方法来比较对象的时候,第一个对象一定得检查是不是存在了,不然会出现空指针异常;

    1.1K70

    Java中==和equals的区别

    JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,...Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。  ...对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号...如果两个对象根据equals()方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须产生同样的整数结果。...如果两个对象根据equals()方法比较是不相等的,那么调用这两个对象中任意一个对象的hashCode方法,则不一定要产生相同的整数结果 如果String缓冲池内 不存在 与其指定值相同的String

    13830

    Java中equals和hashcode的区别

    ,它们的首地址是不同的,即 a 和 b 中存储的数值是不相同的,所以,表达式 a==b 将返回 false,而这两个对象中的内容是相同的,所以,表达式 a.equals (b) 将返回 true。...虽然 equals 方法也是用来判断两个对象是否相等的,但是二者是有区别的。...此处 “不可以重复” 指的是 equals 和 hashCode () 只要有一个不等就可以了。...hashCode () 方法的返回值和 equals 方法的关系如下所示: 如果 x.equals (y) 返回 true,即两个对象根据 equals 方法比较是相等的,那么调用这两个对象中任意一个对象的...如果 x.equals (y) 返回 false,即两个对象根据 equals () 方法比较是不相等的,那么 x 和 y 的 hashCode () 方法的返回值有可能相等,也有可能不等。

    18720

    Java中==和equals()的区别【详解】

    一、Java中==和equals()的区别 1、前述 正如我们所知,一个变量,如果存储的数据是基本数据类型,那么变量所指向的就是它实际的值,但如果这个变量存储的数据是引用数据类型,那么变量所指向的就是它的引用地址...所以我们想到了equals()方法,但实际上equals()方法原本与“==”是没有什么区别的,只不过有一些类重写了它,使它能够在比较引用数据类型的数据时比较的是实际的值,下面让我们进行一个详细的探讨;...// 我们可以看到,简单粗暴,默认的equals()方法就是通过“==”进行比较,与使用“==”直接比较没有区别 return (this == obj); } 4、String...“==”比较的是内存地址,但a和b看上去好像是两个对象,却返回true,而a和c,看上去与a和b是一个意思,但返回的是false,使用equals()方法进行比较无疑都是true,下面让我们详细说明一下使用...“”和new关键字创建字符串的区别; “”和new关键字创建字符串的区别: 咱们借助上面的代码进行说明,顺带介绍一个intern()方法: package com.zibo.java.february.second

    6500

    == 和 equals 的区别是什么?

    image.png 在编写代码的时候我们经常会使用 equals 和 == 来判断两个对象是否相等,那么两者有什么区别呢,主要有以下几点区别: 首先的区别是,equals 是方法,而 == 是操作符;...对于该类型对象的比较,默认情况下,也就是没有复写 Object 类的 equals 方法,使用 == 和 equals 比较是一样效果的,都是比较的是它们在内存中的存放地址。...但是对于某些类来说,为了满足自身业务需求,可能存在 equals 方法被复写的情况,这时使用 equals 方法比较需要看具体的情况,例如 String 类,使用 equals 方法会比较它们的值; 对于上述第三点理解起来可能有点复杂...对于 equals 方法被重写的情况。...那么为什么 i4 和 i5 是返回 false 呢?

    5.2K60

    Java中的==和equals():区别详解

    在 Java 编程中,比较对象的相等性是一个常见的任务。然而,你是否知道在 Java 中有两种不同的方法来比较对象的相等性:== 操作符和 equals() 方法?...本文将深入探讨这两种方法之间的区别以及何时使用它们。 == 操作符 首先,让我们来看看 == 操作符。...区别详解 现在,让我们总结一下 == 操作符和 equals() 方法的区别: == 操作符比较对象的引用,判断是否为同一对象。...总结 在 Java 编程中,理解 == 操作符和 equals() 方法的区别是至关重要的。通过本文的解释,相信你已经对这两种方法有了更清晰的认识。...根据具体情况,选择正确的比较方式将有助于你编写更健壮和可靠的代码。 感谢阅读本文,希望能够帮助你更好地理解 Java 中的对象相等性比较!如果你有任何疑问或建议,欢迎在评论区留言。

    34230

    java中equals,hashcode和==的区别

    java中equals,hashcode和==的区别 相信很多人都很清楚 ==运算符是判断两个对象是不是同一个对象,即他们的地址是否相等 object类中equals与==是等效的 覆写equals更多的是追求两个对象在逻辑上的相等...,在HashTable和HashMap这一类的散列结构中,都是通过hashCode来查找在散列表中的位置的。...Java里面有==运算符了,为什么还需要equals equals()的作用是用来判断两个对象是否相等,在Object里面的定义是: //equals与==是等效的public boolean equals...,不覆写equals就能达到目的: 类的每个实例本质上是唯一的:强调活动实体的而不关心值得,比如Thread,我们在乎的是哪一个线程,这时候用equals就可以比较了。.../kexianting/p/8508207.html java中equals,hashcode和==的区别 https://www.cnblogs.com/dolphin0520/p/3613043.html

    1.4K31

    == 和 equals 的区别是什么?

    在编写代码的时候我们经常会使用 equals 和 == 来判断两个对象是否相等,那么两者有什么区别呢,主要有以下几点区别: 首先的区别是,equals 是方法,而 == 是操作符; 对于基本类型的变量来说...对于该类型对象的比较,默认情况下,也就是没有复写 Object 类的 equals 方法,使用 == 和 equals 比较是一样效果的,都是比较的是它们在内存中的存放地址。...但是对于某些类来说,为了满足自身业务需求,可能存在 equals 方法被复写的情况,这时使用 equals 方法比较需要看具体的情况,例如 String 类,使用 equals 方法会比较它们的值; 对于上述第三点理解起来可能有点复杂...对于 equals 方法被重写的情况。...那么为什么 i4 和 i5 是返回 false 呢?

    1.4K20

    equals()与==的区别?

    equals() : 它的作用也是判断两个对象是否相等,它不能用于比较基本数据类型的变量。equals()方法存在于Object类中,而Object类是所有类的直接或间接父类。...则通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象。使用的默认是 Object类equals()方法。 情况 2:类覆盖了 equals()方法。...一般,我们都覆盖 equals()方法来两个对象的内容相等;若它们的内容相等,则返回 true(即,认为这两个对象相等)。...equals() 方法是被重写过的,因为 Object 的 equals() 方法是比较的对象的内存地址,而 String 的 equals() 方法比较的是对象的值。...当创建 String 类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。如果没有就在常量池中重新创建一个 String 对象。

    1.6K30

    `equals` 与 `==` 的区别

    在 Java 中,equals 方法和 == 运算符都是用于比较对象的,但它们的比较方式和目的却截然不同。 == 运算符 == 运算符用于比较两个变量在内存中的地址。...例如,int a = 10 与 long b = 10L 和 double c = 10.0 的比较将返回 true,因为它们在逻辑上等价于相同的值。...默认行为:如果没有重写,Object 类中的 equals 方法返回的是对象引用的比较,类似于 ==。 空指针处理:在使用 equals 方法时,通常将常量放在前面,以避免可能的空指针异常。...== 运算符用于比较对象在内存中的地址,而 equals 方法则用于比较对象的内容。...在进行对象比较时,优先使用 equals,并在比较常量时,将常量放在前面以避免空指针异常。在自定义类时,建议重写 equals 方法,以实现基于内容的比较,从而确保比较的准确性和可靠性。

    10810

    新手学JAVA(一)——Equals和“==”的区别

    equals()是每个对象与生俱来的方法,因为所有类的最终基类就是Object(除去Object本身);而equals()是Object的方法之一。    ...第二句:必须明确equals到底比较的是对象的什么~~    看一看Object类的equals方法源码: public boolean equals(Object obj) { return...(this == obj); }    内部使用的也是==比较的,所以equals和==在对象的比较上是一样。    ...那equals还有什么用?    每个对象都有自己的内存,但是每个对象也都有自己的一些属性。    比如说,马和牛都有腿,我们希望通过腿的数量来判断马和牛这两个对象是否相同。    ...这个时候,再使用Object类中的equals方法就不能够满足需求了。就需要通过覆盖equals的方式,建立两个对象比 较相同的具体内容。

    56910
    领券