`
shuofenglxy
  • 浏览: 194001 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

equal、hashcode ==

阅读更多
今天突然被人问 equal hashcode ==的区别。我支支吾吾的说 == 比较引用地址,equal比较值。hashcode相同不一定equal,equal一定hashcode相同。 说完觉得没底,就搞出来仔细研究下。 java 中有值类型和对象类型,对于值类型,那只能用==来比较了。对于对象,则可以用==来比较是否引用的为同一个对象;用equals来比较对象的值是否相同。这么看string的==和equal的区别就简单了吧? string就是对象嘛。另外注意,对于string,会放在常量池中,除非用特定的new来创建心字符串对象,其他情况都会看该池中存在不存在,如果存在,就复用。不存在,才去新建。 hashcode是存储对象的位置,通过hashcode可以找到对象,java collection中用hashcode可以检验set中重复问题。hashcode算法就比较多了,求模取余,加1 解决冲突等等。
分享到:
评论

相关推荐

    string-hashcode:java.lang.String.hashCode

    字符串哈希码 字符串的其他实用程序。... equal ( code , code2 ) ;原料药hashCode(str)参数: str:字符串对象返回: 编号:哈希码返回字符串的哈希码。 请注意,哈希码对于特定字符串是不可变的。执照麻省理工学院

    java中hashcode()和equals()方法详解

    ### Java中`hashCode()`与`equals()`方法详解 #### 前言 在Java编程语言中,`hashCode()`和`equals()`方法是非常重要的概念,它们不仅对于深入理解Java内存管理至关重要,也是实现自定义类的关键部分之一。本文将...

    关于hashCode()和equals()的本质区别和联系

    这种基于值的 Equal 方法可以由 Java 类库中的所有原始封装类使用。 为什么忽略 equals() 和 hashCode() 会带来问题 如果我们忽略 equals() 和 hashCode() 方法,那么我们将不能可靠地检索相关的值,除非我们在 ...

    【面试】hashCode与equals两者之间的关系 / == 和equals / 为什么要重写equals方法 / 重写equals /hashcode方法 / 为什么要重写hashCode方法

    【面试】中提到的几个关键知识点集中在对象比较、equals()和hashCode()方法的使用以及它们之间的关系上。这些概念在Java编程中至关重要,特别是在处理集合类和比较对象时。 1、**hashCode与equals两者之间的关系**...

    java中 == 与 equal 的区别讲解

    System.out.println("equal比较:" + str1.equals(str2)); // 输出 true ``` 在这里,`str1.equals(str2)` 返回 `true`,因为两个字符串对象的内容是相同的。 接下来,我们回顾 `equals()` 方法的五个特性: 1. *...

    Java中equals()与hashCode()的原理与设计

     2、为什么改写equals()的时候,总是要改写hashCode()  两个原则:  hashCode()的返回值和equals()的关系如下:  如果x.equals(y)返回“true”,那么x和y的hashCode()必须相等。  如果x.equals(y)返回...

    Java中hashCode和equals方法的正确使用

    在这篇文章中,我将告诉大家我对hashCode和equals方法的理解。我将讨论他们的默认实现,以及如何正确的重写他们。我也将使用Apache Commons提供的工具包做一个实现。  hashCode()和equals()定义在Object类中,这...

    面试官瞬间就饱了,重写equals函数,需要重写hashCode函数吗?

    在Java编程语言中,`equals()` 和 `hashCode()` 方法是对象的基本组成部分,它们与对象的比较和哈希表(如 `HashMap`)的操作密切相关。在面试中,面试官提出的问题直指这两个方法的重要关联。 首先,`equals()` ...

    与==的区别.docxequal与==的区别.docx

    对于自定义类,如果你希望`equals()`方法比较对象的属性值,你需要在类中重写`equals()`和`hashCode()`方法,以确保正确的行为。通常,`equals()`方法应该与`hashCode()`方法保持一致,即相等的对象应该具有相同的...

    javaee_tedu_day09.zip

    ATM系统 Clone方法 toString方法:表示返回对象的字符串表示形式 包名.类名@hashCode(内存地址) 打印对象时,默认调用 如果不是想使用object类,toString...如果equal返回true的话,hashCode相同,重写hashCode方法

    Java中的hashcode方法介绍

    Java中的`hashCode`方法是Java编程语言中的一个重要概念,它主要与对象的散列处理相关。在Java的`Object`类中定义了一个本地方法(native)`hashCode()`,该方法返回一个`int`类型的数值。这个数值是根据对象的状态...

    Java-Reflection-and-Object-Comparison-in-Java:Java Reflection创建适当的对象,覆盖equal和hashCode方法

    Java中的Java反射和对象比较 项目介绍 首先,通过以下方式设计Java类: 2个私有数据成员int IntValue; 字符串StringValue; 空构造函数定义公共方法void setIntValue(int iIn){...}定义公共方法void ...

    java中重写equals和重写hashCode()

    在Java编程语言中,`equals()` 和 `hashCode()` 是两个非常重要的方法,它们主要用于比较对象的平等性以及在散列数据结构(如 `HashMap`、`HashSet` 等)中的对象定位。当我们创建自定义类时,有时需要根据业务需求...

    C#获取当前时间的各种格式

    bool isEqual = dt.Equals(anotherDt); ``` 20. 获取日期和时间的哈希码 使用 `GetHashCode()` 方法可以获取日期和时间的哈希码,例如: ``` int hashCode = dt.GetHashCode(); ``` 21. 获取日期和时间的类型 使用...

    JAVA 枚举相关知识汇总

    boolean isEqual = Color.GREEN.equals(Color.GREEN); 枚举类型的每个枚举常量可以使用 compareTo() 方法比较,例如: int compareTo = Color.GREEN.compareTo(Color.GREEN); 枚举类型的每个枚举常量可以使用 ...

    关于重写equals()为什么一定要重写hashcode()自己的一点心得

    首先我们看下下面代码及输出和String重写equals和hashcode的源码: package com.zzy.test; public class Test6 { public static void main(String[] args) { String s1="aaa"; String s2="aaa"; String s3=new ...

    C# datetime操作

    int hashCode = dt.GetHashCode(); ``` `GetHashCode()` 方法返回一个整数,该整数唯一标识了当前的`DateTime`对象。 #### 获取类型信息 ```csharp Type type = dt.GetType(); ``` `GetType()` 方法返回表示当前...

    简单概括 ==跟equals的区别

    ==  == :既可以比较基本类型,也可以比较引用类型,如果...hashCode(重写equals就一定要重写hashCode)  没有重写hashCode值不会变,重写了hashCode值就会改变     总结:==跟equals的区别 1. ==既可以比较基本

    学生集合排序

    本文将详细探讨如何实现这个过程,重点在于重写`hashCode`和`equals`方法,以及利用`Collections`工具类和自定义比较器来实现多属性排序。 首先,让我们了解`hashCode`和`equals`方法的重要性。这两个方法是Java中...

    Findbugs缺陷等级对照表.pdf

    * 43B:类中定义了 hashCode() 方法,但是没有重写 java.lang.Object 中的 hashCode() 方法 * 44C:类中定义了 tostring() 方法,但是没有重写 java.lang.Object 中的 tostring() 方法 * 45C:某些方法名只有大小写...

Global site tag (gtag.js) - Google Analytics