让我说你们什么好呢, 隔着笼子也打架!# pets - 心有所宠
b*g
1 楼
how does HashMap works in Java?
我不明白问题是什么意思,他让我以put(key,value)为例,我就说用key算出
bucket的位置,把value存进去。
他就继续问我怎么用key算出存在hash表的位置。
这才明白他是在问我Java HashMap怎么计算hash value.跟他确认了一下,就是这个意
思。
我说就是用hash function算,他又问我到底是怎么算的,总之就是问得很细致,看样
子是要求我看过代码才行。
面试结束后,我按了一下这个页面
http://www.docjar.com/html/api/java/util/HashMap.java.html
不知道是不是源代码。
又找了一下hash函数,就是移位异或操作。
hash函数的输入参数是把key用hashCode函数计算成一个整数。hashcode的返回值实际
是object的address。
可是,java不是不能找地址吗?
我看了代码,不过hashCode函数前面有个native关键字,意思是用其他语言写的函数。
看来java里用别的语言写的函数来找对象地址了。
谁能找到这个hashCode函数的源代码?
我不明白问题是什么意思,他让我以put(key,value)为例,我就说用key算出
bucket的位置,把value存进去。
他就继续问我怎么用key算出存在hash表的位置。
这才明白他是在问我Java HashMap怎么计算hash value.跟他确认了一下,就是这个意
思。
我说就是用hash function算,他又问我到底是怎么算的,总之就是问得很细致,看样
子是要求我看过代码才行。
面试结束后,我按了一下这个页面
http://www.docjar.com/html/api/java/util/HashMap.java.html
不知道是不是源代码。
又找了一下hash函数,就是移位异或操作。
hash函数的输入参数是把key用hashCode函数计算成一个整数。hashcode的返回值实际
是object的address。
可是,java不是不能找地址吗?
我看了代码,不过hashCode函数前面有个native关键字,意思是用其他语言写的函数。
看来java里用别的语言写的函数来找对象地址了。
谁能找到这个hashCode函数的源代码?