Java中的hashCode方法

如果不重写hashCode方法,则我们往HashSet中存入数据时,相同的对象也会存入。但是我查看了下Object的源代码hashCode方法的源代码是publicnat... 如果不重写hashCode方法,则我们往HashSet中存入数据时,相同的对象也会存入。但是我查看了下Object的源代码 hashCode方法的源代码是 public native int hashCode();可是即使我们不重写hashCode方法,hashCode方法依然会被调用,只是相同对象得到的哈希码不同而已,但是Object中的hashCode只是一个空方法,又是如何调用的? 展开
 我来答
chenluyao0629
2013-09-20 · TA获得超过820个赞
知道小有建树答主
回答量:538
采纳率:50%
帮助的人:409万
展开全部
是的,即使我们不重写hashCode方法,hashCode方法依然会被调用。

关于你的问题,英文的维基百科是这么说的 “All the classes inherit a basic hash scheme from the fundamental base class java.lang.Object, but instead many override this to provide a hash function that better handles their specific data. Classes which provide their own implementation must override the object method public int hashCode(). ”

所以java 自己在每个class里面会调用 hashCode 函数,不是空方法,native表示是用其它非java语言写的,使用JNI。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12ee0fd
2013-09-20 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1978万
展开全部
Object的不是空方法,native 表示是使用C/C++开发的原生方法。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xmlknows
2013-09-20 · TA获得超过1106个赞
知道小有建树答主
回答量:596
采纳率:100%
帮助的人:390万
展开全部
通过jni调其它C语言实现的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式