【发布时间】:2012-03-27 02:36:30
【问题描述】:
我目前正在为 Java 1.7 构建本机 JVMTI 代理。问题是我需要索引一些关于特定 Java 对象实例的数据。所以我的问题是我可以使用 jobject 类型的值作为对象的实例 ID 来检索我的索引数据吗?
我已经寻找有关什么是作业类型的语义的任何信息。它是对象内存位置的指针吗?它是堆栈指针地址吗?它是 JVM 内部结构的地址吗?所以我无法确定 jobject 的值在 Java 对象的生命周期中是否是唯一且不可变的。
感谢您的帮助。
编辑
根据发现here 的JNI 规范,jobject 似乎是Object 实例的指针。
【问题讨论】:
-
到目前为止您做了什么?您尝试获取和索引或检索的信息的确切类型是什么?
-
事实上,我的问题是关于用 C 编写的 JVMTI 代理。我想使用 Object 的实例作为主键进行缓存(例如实现为哈希映射或红黑树)现在,借助 SetTag 和 GetTag 函数,我用唯一的 id 标记每个对象。