`
guyongpeng
  • 浏览: 61833 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java.lang.Object的equals()和hashCode()方法小结

阅读更多
equals()和hashCode()的关系约定为:
equals()返回true,则hashCode()一定相等;反之不然

object的默认实现为equals为:x == y,hashCode为对象的内存地址转换成的整数

所有的primitive数据类型对应的包装对象的equals均override了equals()和hashCode(),其中equals为值相等,hashCode为值

Integer为何要overide equals()方法? 如果它不用于HashMap的key的话,没啥问题;但如果用于key的话,不override equals()方法就太傻了
hashCode()存在的目的仅仅是基于效率。

自己实现equals()和hashCode()方法的约束:
1.对称性
2.自反性
3.传递性
4.与hashCode()的一致性:两个equals()相同的对象,其hashCode()必须相同

所有基于hash的集合collection会假定用作key的对象的hashCode()不会改变
分享到:
评论

相关推荐

    java.lang包介绍

    6. **Object**: 所有类的基类,包含诸如`equals()`, `hashCode()`, `toString()`等基础方法。 7. **Class**: 表示运行时的类信息,允许动态获取类的属性和方法。 8. **System**: 提供系统相关的属性和操作,如标准...

    java.lang包

    `Object`类是所有Java类的最终超类,包含所有对象共有的属性和方法,如`equals()`比较两个对象是否相等,`hashCode()`返回对象的哈希码,`toString()`返回对象的字符串表示。 通过理解并熟练使用`java.lang`包中的...

    java.lang研究

    `Object`类是所有Java类的根,它定义了所有对象共有的行为,如`equals()`、`hashCode()`和`toString()`方法。`System`类提供了系统级的服务,如标准输入、输出流,以及全局变量`out`、`err`和`in`。 `Thread`类是多...

    java源码阅读之java.lang.Object

    Java源码阅读之java.lang.Object Java中的Object类是所有类的父类,任何类都默认继承Object。Object类提供了多种方法,以下是其中一些重要的方法: 1. clone方法:保护方法,实现对象的浅复制,只有实现了...

    java_lang包详解.pdf

    此外,Object类是所有Java类的根类,它定义了对象的基本行为,如equals()、hashCode()和toString()。Class类则代表运行时的类信息,可以用来获取类的属性、方法等信息。System类提供了与系统相关的静态方法和字段,...

    北大青鸟Java.lang.rar经典例子

    这个类定义了一些通用的方法,如`equals()`(用于比较对象是否相等)、`hashCode()`(返回对象的哈希码)以及`toString()`(将对象转换为字符串表示)。 2. **String类**:在`java.lang`包中,`String`类是最常用的...

    Java中的equals和hashCode方法详解1

    在Java编程语言中,`equals()`和`hashCode()`方法是对象的基本组成部分,它们主要用于对象的比较和存储。这两个方法在`java.lang.Object`类中定义,因此所有的Java类都默认继承了这两个方法。然而,根据具体的应用...

    JBuider第六章:Java.lang包.rar

    `Object`类是所有Java类的父类,包含了所有对象通用的方法,如`equals()`、`hashCode()`和`toString()`。`String`类是不可变的字符序列,广泛用于文本处理。`Integer`和`Boolean`是Java的基本数据类型包装类,允许...

    java中Hashcode的作用.docx

    在Java中,Hashcode的约定是由Java.lang.Object类中的hashCode方法所规定的。这个方法规定了Hashcode的三个基本原则: 1. 在一个应用程序执行期间,如果一个对象的equals方法做比较所用到的信息没有被修改的话,则...

    北大青鸟JAVA培训教程-java.lang包

    【Object】类是所有Java类的超类,它定义了一些通用的方法,如`equals()`, `hashCode()`, `toString()`等。`equals()`用于比较两个对象是否相等,`hashCode()`用于返回对象的哈希值,`toString()`则将对象转化为字符...

    Java源码解析——看优秀源码最能使人进步

    Java.lang.Integer类是Java语言中的一种基本数据类型,该类的声明、主要属性、构造方法、toString方法、自动拆箱和装箱、equals方法、hashCode方法、parseInt方法、compareTo方法等都会被详细解析。 Java.lang....

    Java rt.jar源码

    例如,`java.lang`包中的`Object`类是所有Java类的基类,包含了一些通用的方法如`toString()`、`equals()`和`hashCode()`;`java.io`包提供了I/O流的抽象,支持文件操作和网络数据传输;`java.util`包则包括了各种...

    Java中equals方法隐藏的陷阱

    `equals`方法的标准定义是在`java.lang.Object`类中,其签名是`public boolean equals(Object obj)`。这是一个重要的设计决策,因为这样可以确保任何对象都可以被传递给`equals`方法进行比较。然而,在实际开发过程...

    Java Object类认识

    `Object`类位于Java的核心库`java.lang`包中,它提供了基本的方法来支持对象的创建、比较和字符串表示。以下是`Object`类的一些关键方法: 1. **构造器**:虽然`Object`类没有显式的构造器,但每个类在创建时都会...

    Java API接口详述.rar

    1. `java.lang.Object`: 所有Java类的根类,包含通用方法如`equals()`, `hashCode()`和`toString()`。 2. `java.util.ArrayList` 和 `java.util.LinkedList`: 分别是基于数组和链表实现的列表容器,提供不同的性能...

    jdk1.6的rt.jar的源码

    1. `java.lang.Object`:所有Java类的基类,定义了对象的基本行为,如`equals()`、`hashCode()`和`toString()`。 2. `java.util.ArrayList`和`java.util.HashMap`:集合框架的两个重要实现,分别代表动态数组和哈希...

    Java常用包

    Java语言提供了多种常用包和类,包括java.lang、String、StringBuffer、Math、Object、Class、Constructor、Method、Field、Date、Calendar、SimpleDateFormat、File等,这些包和类为Java开发提供了强大的支持。

    java中hashCode、equals的使用方法教程

    在Java编程语言中,`hashCode()` 和 `equals()` 方法对于对象的比较和处理至关重要,尤其在集合类(如Set和Map)中。这两个方法都源自`java.lang.Object`类,因此所有的Java类都默认继承了它们。理解并正确地重写这...

Global site tag (gtag.js) - Google Analytics