如何在 Java 本机接口中获取 Java "object" 地址



是否可以在JNI方法中获得Java对象的地址?或者用其他方法。

如果不可能获得对象的真实地址,那么是否有一种方法来确定数据结构的内存布局?


(这只是一个例子,我的问题的描述在这一行以上)

例如,我有一个数组(或任何其他类型的容器,如ArrayList, LinkedList等)的"对象",我想知道这些"对象"(不是容器内的引用)是如何在堆上分配的,它们可能不是连续分配的,甚至是随机排序的。我能了解一下这方面的情况吗?


编辑:这里有另一个想法,有没有其他Java虚拟机可以处理这种低级的事情?例如Jikes,甚至Dalvik

您可以尝试http://javasourcecode.org/html/open-source/jdk/jdk-6u23/sun/misc/Unsafe.java.html。它提供了一些低级操作

最新更新