AFAIK, memory in Java is based on heap from which the memory is allotted to objects dynamically and there is no concept of shared memory.
If there is no concept of shared memory, then the communication between Java programs should be time consuming. In C where inter-process communication is quicker via shared memory compared to other modes of communication.
Correct me if I’m wrong. Also what is the quickest way for 2 Java progs to talk to each other.
Since there is no official API to create a shared memory segment, you need to resort to a helper library/DDL and JNI to use shared memory to have two Java processes talk to each other.
In practice, this is rarely an issue since Java supports threads, so you can have two “programs” run in the same Java VM. Those will share the same heap, so communication will be instantaneous. Plus you can’t get errors because of problems with the shared memory segment.