我目前正在为Java 1.7构建本机JVMTI代理。问题是我需要索引关于特定Java对象实例的一些数据。所以我的问题是我可以使用jobject类型的值作为对象的实例ID来检索我的索引数据?如何唯一区分Java的对象实例
我已查找有关jobject类型的语义是什么的任何信息。它是Object的内存位置上的指针吗?它是一个堆栈指针地址?它是否是JVM内部结构的地址?所以我无法弄清楚jobject的价值是否独一无二,并且随着Java对象的生活而不可变。
感谢您的帮助。
编辑
按照JNI的规范发现here,jobject似乎是对对象实例的指针。
到目前为止,你做了什么?根据你所获得的信息,你试图获取和索引或检索的信息的确切类型是什么? – 2012-03-09 19:35:04
可能类似:http://stackoverflow.com/questions/909843/java-how-to-get-the-unique-id-of-an-object-which-overrides-hashcode – 2012-03-10 00:31:15
其实,我的问题是关于一个用C语言编写的JVMTI代理程序。我想将Object的实例用作缓存目的的主键(例如实现为哈希映射或红黑树)。现在,我使用SetTag标记每个对象的唯一标识&GetTag功能。 – Gu0sur20 2012-03-10 21:12:46