我想知道是否有可能得到一个对象的某些字符串值来访问该对象在同一台机器(同一RAM)或相同VM上通过特定的的toString结果串。构造一个新的对象()与另一个对象
例如
Object objA1 = new Object();
System.out.print(objA1.adress); => output: d146a6581ed9e
Object objExt = Object.buildFromMemoryAdress("d146a6581ed9e");
我希望你明白我想了解什么。
编辑:我在
http://javapapers.com/core-java/address-of-a-java-object/#&slider1=1
发现了一类,让我得到了(VM?)内存实例的逻辑地址的字符串:sun.misc.Unsafe
我想我也可以使用Unsafe从(限制到VM?)内存中检索对象。
如果不能这样,我会怎么做,因为它是出于好奇有没有允许这样的直接存储器访问的任何其他语言(尤其是高端)?
+1也可尝试新的'字节(10)的ToString()'和' “10” 的ToString()' – 2012-01-18 09:04:02
那么这将是一个对象标识符? HashCode不是唯一的,对吗? 我编辑了我的问题很多,因为我有很多关于toString的答案。 – sinekonata 2012-01-18 10:05:19
@sinekonata:答案集中在'toString()'上,因为问题是:)我不知道在某些文本表示中获得有用对象标识符的方法 - 最简单的方法就是保持对该对象的引用在代码中。如果你想...你可以创建一个从你自己的对象标识符到对象引用的映射(可能通过'WeakReference'),但是你不知道你想要实现什么。 – 2012-01-18 10:09:16