我知道这可能与编程中的许多一般规则背道而驰,但你会怎么做?我提出这个问题有两个原因:
答案 0 :(得分:5)
这个问题缺乏很多关于一般编程的知识,至少从它的表达方式来看,但我到底会在这里幽默作者。
您真正要求的是共享内存作为IPC(进程间通信)的一种形式。 Java不支持共享内存,因为它非常特定于操作系统。而且,如果您想在两个进程之间共享对象,那么使用套接字就更容易也更灵活。您似乎非常关注性能而不了解程序的性能,但是通过套接字共享数据与实际用途的共享内存一样快。我不会过分担心共享内存不是一个选项。现在这个称为互联网的东西出现了,现在没有多少程序使用它了。
如果您真的对共享内存感到困惑,可以使用NIO查看内存映射文件。现在NIO2已经推出了Java 7,可能还有其他一些选择具有更好的性能。
答案 1 :(得分:4)
Java无法读取/写入RAM中的任意位置。
如果您想在不同的应用程序之间共享数据,我建议您使用文件或数据库。
答案 2 :(得分:2)
在这里,我假设您希望在两个进程之间“传递”数据,而无需将数据写入数据库或文件等临时存储。答案是:inter process communication。有一种技术可用于实施IPC,但选择很大程度上取决于您的要求。
答案 3 :(得分:0)
可以直接写入JVM控制的RAM。但是,除非两个应用程序在同一个JVM上运行,否则这可能不会非常有用。
访问物理内存可能需要Java以外的东西。