title: Why is the maximum size of the Java heap fixed?
body: <p>It <a href="https://stackoverflow.com/questions/763295/setting-jvm-heap-size-at-runtime">is</a> <a href="https://stackoverflow.com/questions/2073869/how-to-increase-java-heap-size-programmatically">not</a> <a href="https://stackoverflow.com/questions/1091566/is-it-possible-to-dynamically-change-maximum-java-heap-size">possible</a> to increase the maximum size of Java's heap after the VM has started.  What are the technical reasons for this?  Do the garbage collection algorithms depend on having a fixed amount of memory to work with?  Or is it for security reasons, to prevent a Java application from DOS'ing other applications on the system by consuming all available memory?</p>