AFAIK, память в Java основана на куче, из которой память распределяется по объектам динамически и нет понятия общей памяти.
Если понятия общей памяти нет, тогда связь между программами Java должна занимать много времени. В C, где межпроцессная связь быстрее осуществляется через общую память по сравнению с другими режимами связи.
Исправьте меня, если я ошибаюсь. Также, что самый быстрый способ для двух Java-прогов говорить друг с другом.