在Java中查看内存中特定位置的字节

时间:2013-08-16 15:40:15

标签: java c memory byte

在C中我可能会说

printf("%p",0x11194);
*((int *) 0x11194) = 30240;

(在这个例子中我知道该内存位置有一个整数)

请告诉我,我将如何在Java中做同样的事情?顺便说一下,我可能完全误解了记忆的运作方式

2 个答案:

答案 0 :(得分:2)

可以使用sun.misc.UnsafeByteBuffer在Java中执行此操作。

但是对于普通的Java使用,你根本不这样做。 Java将为您提供一个对象引用,它是对象的句柄。它没有指向内存中的一个位置(JVM可以在你不知道/关心的情况下移动内存中的对象)并且你不能对它们执行算术(与指针不同)

答案 1 :(得分:1)

你没有误解记忆的运作方式;你只是假设Java会让你触摸它。它不会。内存和指针仍然存在,但必须通过适当的对象创建和去引用来访问,而不是直接指针内存访问。

从好的方面来说,你不必担心释放你不再需要的记忆。