title: In Java, are static class members shared among programs?
body: <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_edition/html/j3TOC.html" rel="noreferrer">spec</a>? The source code of some implementation? Websites? Books?</p>