Ricky的面试比惨俱乐部 EP2 hashCode()

Object若不重写hashCode()的话,hashCode()如何计算出来的?

图片说明
好的回答结束。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
咳咳,我们来深究一下~
话不多说,先上源码——

     * @return  a hash code value for this object.
    public native int hashCode();

额,emmmm就没了,咋就返回了个内存地址呢,咋就调用了C或C++实现的呢?
关键在于这个native关键字:
当出现这个关键字的时候,意味着这个方法是在外部定义的,native意味着本地,即调用了本地的C或C++库,譬如hashCode()就是找到本地库中C实现的hashCode方法,去返回这个object的内存地址,而这个过程是的桥梁是JNI(Java Native Interface),他提供了互操作的API。
JNI调用C的流程图 https://www.cnblogs.com/KingIceMou/p/7239668.html
这就是为了跨平台,而对底层控制做出的牺牲。

全部评论

相关推荐

06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务