Nih*_*rma 5 java object hashcode
当我浏览Object类时,我发现只有hashCode()方法的声明.实施部分在哪里?如果没有实现,hashCode()方法如何返回结果?
And*_*nov 10
它是在本机代码中实现的.至于实现,它有点棘手 - 你可以改变默认实现.如果查看"Open JDK"源,您将看到以下选项:
-XX:hashCode = n(从0到5).
你可以在这里找到一个详细的implmenetation:http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/runtime/synchronizer.cpp
考虑static inline intptr_t get_next_hash()
函数的源代码和注释.
该native
关键字表示它已在本机代码(JVM)中实现.
如果您看到声明的hashcode
public native int hashCode();
Run Code Online (Sandbox Code Playgroud)
native
声明中表示它是在jvm代码中本机实现的.