在java中访问存储在内存位置的数据

在java中访问存储在内存位置的数据,java,pointers,native,Java,Pointers,Native,我正在寻找一种从预先写入的内存位置读取数据的方法。在运行windows的计算机上,有没有办法用java实现这一点 Java提供了计算机的“抽象”,因此是“Java虚拟机”(JVM)。无论底层硬件或操作系统如何,这个JVM(理论上)都是相同的。因此(AFAIK)不可能从程序空间直接访问低级内存。 我的建议是用较低级别的语言编写一些东西(例如,C使mem访问变得相当容易),然后使用Java本机接口(JNI)调用它并将数据输入Java程序。谷歌在“Java本机接口”和/或“从Java调用C”上搜索关

我正在寻找一种从预先写入的内存位置读取数据的方法。在运行windows的计算机上,有没有办法用java实现这一点

Java提供了计算机的“抽象”,因此是“Java虚拟机”(JVM)。无论底层硬件或操作系统如何,这个JVM(理论上)都是相同的。因此(AFAIK)不可能从程序空间直接访问低级内存。

我的建议是用较低级别的语言编写一些东西(例如,C使mem访问变得相当容易),然后使用Java本机接口(JNI)调用它并将数据输入Java程序。谷歌在“Java本机接口”和/或“从Java调用C”上搜索关于如何调用的教程。显然,对于要在其上运行的每个平台,本机组件的编译方式都会有所不同,提供了一个单独的可执行二进制“本机”文件。ANSI C曾经是一个很好的编码标准,因为如果您想使用多平台,所有(??)平台上都可以使用符合该标准的编译器。


使用JNI调用将打破Java的“编译一次,在任何地方运行”特性,因为它取决于仍然需要为每个要运行它的平台重新编译的组件。当然,在实践中,不同平台的本机代码也可能不同,因为不同平台的内存组织可能不同。

预写是什么意思?我们不是只能读预先写好的书吗?有时候,答案只是。。“没有”。当然,这是官方版本。。。。你可能还想看看