栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

Object的方法都有哪些?

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Object的方法都有哪些?

所有类都直接或间接扩展 java.lang.Object 类。这个类定义了很多有用的方法,而且你编写的类可以覆盖这些方法。

  • toString()方法

toString() 方法的作用是返回对象的文本表示形式。连接字符串或使用 System.out.println() 等方法时,会自动在对象上调用这个方法。给对象提供文本表示形式,十分利于调试或记录日志,而且精心编写的 toString() 方法还能给报告生成等任务提供帮助。

Object 类中的 toString() 方法返回的字符串由对象所属的类名和对象的十六进制形式哈希码(由 hashCode() 方法计算得到,本章稍后会介绍)组成。这个默认的实现方式提供了对象的类型和标识两个基本信息,但一般并没什么用。示例 5-1 定义的 toString() 方法,返回一个人类可读的字符串,包含 Circle 类每个字段的值。

  • equals()方法

== 运算符测试两个引用是否指向同一个对象。如果要测试两个不同的对象是否相等,必须使用 equals() 方法。任何类都能覆盖 equals() 方法,定义专用的相等比较方式。Object.equals() 方法直接使用 == 运算符,只有两个对象是同一个对象时,才判定二者相等。

  • hashCode()方法

Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值。 如果集合中已经存在一万条数据或者更多的数据,如果采用equals方法去逐一比较,效率必然是一个问题。此时hashCode方法的作用就体现出来了,当集合要添加新的对象时,先调用这个对象的hashCode方法,得到对应的hashcode值,实际上在HashMap的具体实现中会用一个table保存已经存进去的对象的hashcode值,如果table中没有该hashcode值,它就可以直接存进去,不用再进行任何比较了;如果存在该hashcode值,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址,所以这里存在一个冲突解决的问题,这样一来实际调用equals方法的次数就大大降低了。
hashcode方法的作用

只要覆盖了 equals() 方法,就必须覆盖 hashCode() 方法。hashCode() 方法返回一个整数,用于哈希表数据结构。如果两个对象经 equals() 方法测试是相等的,它们就要具有相同的哈希码。不相等的对象要具有不相等的哈希码(为了哈希表的操作效率),这一点很重要,但不是强制要求,最低要求是不相等的对象不能共用一个哈希码。为了满足最低要求,hashCode() 方法要使用稍微复杂的算法或位操作。

Object.hashCode() 方法和 Object.equals() 方法协同工作,返回对象的哈希码。这个哈希码基于对象的身份生成,而不是对象的相等性。(如果需要使用基于身份的哈希码,可以通过静态方法 System.identityHashCode() 获取 Object.hashCode() 方法的返回值。)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/263617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号