Attualmente sto creando un agente JVMTI nativo per Java 1.7. Il problema è che ho bisogno di indicizzare alcuni dati riguardanti specifiche istanze di oggetti Java. Quindi la mia domanda è: posso usare il valore del tipo di jobject come ID di istanza di un oggetto per recuperare i miei dati indicizzati?Come distinguere univocamente l'istanza dell'oggetto Java
Ho cercato qualsiasi informazione su quale sia la semantica del tipo di jobject. È un puntatore sulla posizione di memoria dell'oggetto? È un indirizzo puntatore stack? È un indirizzo per la struttura interna di una JVM? Quindi non riesco a capire se il valore di jobject è unico e immutabile lungo la vita dell'oggetto Java.
Grazie per il vostro aiuto.
modificare
Secondo le specifiche di JNI trovato here, jobject sembra essere un puntatore su un'istanza di oggetto.
cosa hai fatto fino ad ora e qual è il tipo esatto di informazioni che stai cercando di ottenere e indicizzare o recuperare in base a ciò che hai ottenuto? –
Potrebbe essere simile: http://stackoverflow.com/questions/909843/java-how-to-get-the-unique-id-of-an-object-which-overrides-hashcode –
In realtà, la mia domanda riguarda un agente JVMTI scritto in C. Voglio usare l'istanza di Object come chiave primaria per lo scopo di caching (implementato come una mappa hash o un albero rosso-nero per esempio) Per ora sto taggando ogni oggetto con un ID univoco grazie a SetTag & Funzioni GetTag. – Gu0sur20