如何在Java中打印变量的地址

h8p*_*hak 4 java collections linked-list

因为C中的变量(即int a)的地址可以通过获得&a.

如何在Java中完成?对于Eg.链表的元素是不连续的.我们如何&a使用Collections Framework创建?

编辑:

如果上述事情不可能,我们怎样才能表明数组的元素是连续的而链表的元素不是?

Dur*_*dal 7

java 语言中没有任何元素可以让您获得任何东西的地址,更重要的是,没有任何语言元素需要任何东西的地址。这就是java中没有地址运算符的原因。整个语言被设计为无需工作。

内存地址的整个概念是在java中抽象出来的;您可以获得的最接近的引用,但这仅限于实际对象。虽然引用的值实际上是一个内存地址(或者至少可以轻松转换为内存地址,请参阅压缩的 OOPS),但无法将该值转换为其他任何值。再一次没有必要这样做,除非可能是为了满足你的好奇心。

然而,通过使用(注意:不可移植,不适合实际公共使用!)java.sun.misc.Unsafe,这个类允许将引用的值转换为 long(表示内存地址)。可以在此处找到使用它的示例:https : //dzone.com/articles/understanding-sunmiscunsafe


Vla*_*ich 6

在Java中获取任何原始变量或对象的地址是不可能的.您所能做的就是获取默认对象哈希码(通常与其地址相关,但不保证)System.identityHashCode(a).