Es posible utilizar sun.misc.Unsafe
: ver esta gran respuesta de @Peter Lawrey ->Is there a way to get a reference address?
A través de su código para printAddresses():
public static void printAddresses(String label, Object... objects) {
System.out.print(label + ": 0x");
long last = 0;
int offset = unsafe.arrayBaseOffset(objects.getClass());
int scale = unsafe.arrayIndexScale(objects.getClass());
switch (scale) {
case 4:
long factor = is64bit ? 8 : 1;
final long i1 = (unsafe.getInt(objects, offset) & 0xFFFFFFFFL) * factor;
System.out.print(Long.toHexString(i1));
last = i1;
for (int i = 1; i < objects.length; i++) {
final long i2 = (unsafe.getInt(objects, offset + i * 4) & 0xFFFFFFFFL) * factor;
if (i2 > last)
System.out.print(", +" + Long.toHexString(i2 - last));
else
System.out.print(", -" + Long.toHexString(last - i2));
last = i2;
}
break;
case 8:
throw new AssertionError("Not supported");
}
System.out.println();
}
he definido esta prueba:
//hashcode
System.out.println("Hashcode : "+myObject.hashCode());
System.out.println("Hashcode : "+System.identityHashCode(myObject));
System.out.println("Hashcode (HEX) : "+Integer.toHexString(myObject.hashCode()));
//toString
System.out.println("toString : "+String.valueOf(myObject));
printAddresses("Address", myObject);
Aquí está la salida:
Hashcode : 125665513
Hashcode : 125665513
Hashcode (HEX) : 77d80e9
toString : [email protected]
Address: 0x7aae62270
Conclusión:
- código hash = dirección de
- toString = clase @ HEX (código hash)
bien no estoy votando abajo porque la cuestión es lo suficientemente claro, sólo una sugerencia que debería haber hecho en el texto por lo la gente puede buscarlo – phunehehe
Edité la pregunta. – uzay95
Se ve bien ahora que está editado –