Java 如何在另一个程序中访问已构建的链表?

Java 如何在另一个程序中访问已构建的链表?,java,c,data-structures,linked-list,Java,C,Data Structures,Linked List,假设我在一个程序中建立一个链表,然后在另一个程序中我必须访问它。 我该怎么做 我试图在一个程序中使用Java中的全局链表数据结构,但在另一个程序中似乎无法访问它。我想在下一个程序中无法获得对链表的引用 如何解决这个问题?基本上,您不能在一个程序中构建一个链表,然后将其完全传递给另一个程序,这主要是因为两个程序的堆内存将不同 因此,基本上你必须使用某种通信机制来实现这一点 一,。首先,您可以在一个程序中构建链接列表,并使用RPC调用一次只向另一个程序发送一个节点 2或使用链接列表所在的共享内存

假设我在一个程序中建立一个链表,然后在另一个程序中我必须访问它。 我该怎么做

我试图在一个程序中使用Java中的全局链表数据结构,但在另一个程序中似乎无法访问它。我想在下一个程序中无法获得对链表的引用


如何解决这个问题?

基本上,您不能在一个程序中构建一个链表,然后将其完全传递给另一个程序,这主要是因为两个程序的堆内存将不同

因此,基本上你必须使用某种通信机制来实现这一点

一,。首先,您可以在一个程序中构建链接列表,并使用RPC调用一次只向另一个程序发送一个节点

2或使用链接列表所在的共享内存。通过使用某种机制(如
placement new
)强制在该共享内存块上进行分配


当您在JVM中运行时。您正在跨Java进程共享Java堆,我认为您可以使用基于RMI的机制来实现这一点

如果您只需要在Java程序中生成链表,然后将其传递给另一个程序,您可以通过将链表转换为外部形式来实现。这可以是Java序列化对象(其他程序必须对其进行解释),也可以是XML、JSON、您自己设计的自制格式或任何其他格式。然后可以通过进程间通信(文件、套接字或@yair在其注释中提供的链接中描述的其他机制)将其传递给另一个程序


如果您需要Java程序和另一个程序之间的某种双向交互,那么某种ipc机制可能是最简单的。

不,默认情况下,一个程序不能只访问另一个程序的内存,它也不知道如何在这种情况下,因为这个变量是未定义的。你能给出一个原因,为什么你想这样做?通常情况下,一个程序会将其数据结构保留在其所需的语言/应用程序中,而不是在不同的语言/应用程序之间进行混合和匹配。请尝试“开始阅读”。这些程序是否需要同时访问该结构,还是只想从一个程序中获取数据结构以供另一个程序使用?您要查找的搜索词是进程间通信“。我很想投你的反对票,因为你发布了一张来自CS 101的照片,这与实际问题无关,但你的建议是有效的。@Jay D…..这是一个很好的解释。。。。。。实际上,我正在开发hadoop我正在尝试在HDFS中构建一棵树。所以我想,如果我在普通的独立java中求解,我就可以在HDFS中进行……我会尝试RMI。正如你所建议的…谢谢。。。看看这个@RickMangi:这张图片只是给出了进程地址空间的概念。它的
容易
使它复杂化。