我一直在阅读sun.misc.Unsafe类(openjdk6),因为我很好奇它实际引用了多少本机方法。可以理解的是,类中有大量的本机方法,但我似乎无法找到它们的实现位置。
我已经通过openjdk6 repo了解,虽然我可以找到其他类本机方法的实现,但我找不到不安全的方法。我猜测它们不是openjdk代码,而是编译为热点的一部分?
我是否在openjdk中查找错误的位置,或者它们是否确实在热点中实现?我们非常感谢您对其所在地的参考。
答案 0 :(得分:11)
Openjdk版本可以在这里找到:
http://hg.openjdk.java.net/jdk6/jdk6/hotspot/file/4fc084dac61e/src/share/vm/prims/unsafe.cpp
http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/4fc084dac61e/src/share/vm/prims/unsafe.cpp
编辑:
正如8472所指出的,这些是解释器模式中使用的本机实现。他们中的大多数人在热点都有intrinsic implementations。 这个header file列出了内在的(搜索“sun_misc_Unsafe”)。