【原创】【Java】Object类的思考,hashCode为什么要放进类中

博主在面试中被问及Object类的toString()和hashCode()方法的设计原因,意识到对这两个方法的理解仅限于基本使用。经过思考和后续学习,推测可能的原因包括接口统一和命名一致性,以避免功能重复并提供便捷访问。博主期待深入理解,并将持续学习更新。
摘要由CSDN通过智能技术生成

原文:
哈哈,back to Java 了。前些日子面试遇到一个问题一直想记录一下,问我对 Object 类了解多少。
我复习的时候漏掉了这部分内容,就按照记忆说了一下 Java 语言是按照单根的设计思想设计的,Object 类是所有类的最终父类,然后说了几个类里边的方法。
然后就有了如下对话(大概意思):

BOSS:你刚才提到了 toString() 方法,那你在哪用过呢?
我:写在 bean 类里边,用来打印日志。

BOSS:还有用在其他什么地方吗?
我:好像是没有了

BOSS:那么我问你一下啊,toString() 我们平时也就用在打印一些日志,所以说他的使用场景是很少的,那么为什么要把他放进 Object 类里呢?
我:…因为所有类都会继承 Object 类,所以在需要用到这个方法的时候可以拿来就用?

BOSS:那我再问你哈,Object 类中的 hashCode() 方法,是用来散列的对吧,大部分情况就是用来保存到数组时候用的,那为什么不把这个方法放进数组的接口里,而要放进 Object 类?
我:…(思考无果)

BOSS:你用设计者的思想来想一下?
我:…(思考无果)

↑ 以上。

这个问题直接给我问住了,从来没有想过这个问题,时候又从网上查了查,但都是一些介绍类介绍方法的帖子,没有关于设计思想的回答。属实很迷。
记录一下吧,如果有大佬会,希望赐教一下~
或者日后要是看哪本书的时候看到了解释,再回来更新。

更新1:

最近在学习jvm,注意到了hashcode等方法是native关键字修饰的,也就是这些方法仅仅是接口,实现是通过底层的本地方法实现的。所以问题的答案会不会是这个呢?还是不得而知。继续学习把…!

更新2:
突然顿悟,,,不会是为了命名的一致性吧。。
避免功能相似,但是却被开发者随意起名。
感觉这就是问题的答案了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值