In Java, are static class members shared among programs?
<p><strong>I imagine that no, they aren't, because every process has its own memory space, of course.</strong></p>

<p>But how does the whole JVM thing actually work? Is there a separate JVM in a separate process for every Java program that I launch? Do Java programs running in a system share anything at all? Are there differences between OSs and JVM implementations? Can I <em>make</em> programs share variables (i. e. directly through the JVM rather than the usual IPC mechanisms)? Are there more exotic one-process JVMs for special purposes?</p>

<p>Generally, what are recommendable reads about the guts of JVMs? The <a href="http://java.sun.com/docs/books/jls/third%5Fedition/html/j3TOC.html" rel="nofollow">spec</a>? The source code of some implementation? Websites? Books?</p>
