Actualmente estoy creando un agente JVMTI nativo para Java 1.7. El problema es que necesito indexar algunos datos con respecto a las instancias de objetos de Java específicas. Entonces mi pregunta es ¿puedo usar el valor de tipo de objeto de trabajo como ID de instancia de un objeto para recuperar mis datos indexados?Cómo distinguir de manera única la instancia de objeto de Java
He buscado cualquier información sobre cuál es la semántica del tipo de proyecto de trabajo. ¿Es un puntero en la ubicación de la memoria de Object? ¿Es una dirección de puntero de pila? ¿Es una dirección a la estructura interna de una JVM? Así que no puedo entender si el valor de Jobject es único e inmutable a lo largo de la vida del objeto Java.
Gracias por su ayuda.
edición
De acuerdo con las especificaciones del JNI encontró here, jobject parece que hay un puntero en la instancia del objeto.
¿qué ha hecho hasta ahora y cuál es el tipo exacto de información que está tratando de obtener e indexar o recuperar en función de lo que ha obtenido? –
Puede ser similar: http://stackoverflow.com/questions/909843/java-how-to-get-the-unique-id-of-an-object-which-overrides-hashcode –
De hecho, mi pregunta es sobre un agente JVMTI escrito en C. Quiero utilizar la instancia de Object como claves principales para el propósito de caché (implementado como un mapa hash o un árbol rojo-negro, por ejemplo) Por ahora estoy etiquetando cada objeto con una identificación única gracias a SetTag & GetTag funciones. – Gu0sur20