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

在Java中查看内存中特定位置的字节,java,c,memory,byte,Java,C,Memory,Byte,用C我可以说 printf("%p",0x11194); *((int *) 0x11194) = 30240; (在本例中,我知道在该内存位置有一个整数) 请告诉我,我将如何在Java中做同样的事情?顺便说一句,我可能完全误解了记忆的工作原理你没有误解记忆的工作原理;您只是假设Java会让您触摸它。不会的。内存和指针仍然存在,但必须通过正确的对象创建和去引用来访问,而不是直接访问指针内存 好的一面是,您不必担心释放不再需要的内存。您可以使用和在Java中实现这一点 但是,对于正常的Java使

用C我可以说

printf("%p",0x11194);
*((int *) 0x11194) = 30240;
(在本例中,我知道在该内存位置有一个整数)


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

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

好的一面是,您不必担心释放不再需要的内存。

您可以使用和在Java中实现这一点


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

您不能查看java中的内存。这是一种托管语言。学习如何用C编写printf:它应该是
printf(“%p”),…
你不能。Java中不存在这样的直接内存访问。感谢你的及时评论,我将使用C而不是@grijesh如果我不需要它,我不会问你不应该使用它,但该类提供了直接内存访问。