Sembra che sia solo un risultato toString diretto come generato quando una classe non esegue l'override di toString con la propria implementazione.
Se questo è il caso (che è possibile controllare l'override toString e vedere se si ottiene un output diverso), quindi in base alla documentazione Java per Object (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html) l'implementazione di default per toString è:
getClass().getName() + '@' + Integer.toHexString(hashCode())
I codici hash, a quale numero si riferisce, sono piuttosto complicati. Anche in questo caso, dalla documentazione Java su oggetto, codice hash viene implementato con il seguente contratto:
The general contract of hashCode is:
* Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
* If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
* It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables.
Quindi, risposta breve, è il numero non significa che sia lo stesso riferimento all'oggetto. Possono avere gli stessi valori memorizzati, ma anche questo non è un dato.
L'ID oggetto JDWP è in qualche modo inutile, poiché non è possibile accedervi dal nostro codice. Il System.identityCashCode() dell'oggetto sarebbe molto più utile. Questo perché molto spesso abbiamo un oggetto A che contiene un riferimento a un oggetto B, e nel toString() dell'oggetto A possiamo includere l'hashcode dell'identità dell'oggetto B, ma poi guardiamo attraverso le variabili/orologi/etc per un oggetto B con quell'identità hashcode e non possiamo trovarlo, perché IntelliJ IDEA non lo sta segnalando per identità hashcode. –
Lo stesso vale per la registrazione: molto spesso registriamo i riferimenti agli oggetti; un modo semplice e affidabile per registrare un'istanza di un oggetto è registrare la sua identitàHashCode. Ma ancora, IntelliJ IDEA rende impossibile verificare se un oggetto il cui riferimento è nel log è lo stesso di un riferimento che appare nelle variabili, perché posso solo accedere a un identityHashCode, ma IntelliJ IDEA mostra gli ID oggetto JDWP. –