jvm JVM Heap Setting the maximum heap size.


Most JVMs have an option to set the maximum heap size e.g.


In Java 1.0 to 1.2 you could use


and this is still available on some JVMs for backward compatibility (E.g. Oracle JVM).

There are a few common misconceptions about this setting.

  • It doesn't set the heap size, only the maximum. -Xms sets the initial heap size.
  • It doesn't set the amount of memory the JVM will use. While the heap is an important area of memory, there are many other regions for code Perm Gen/Metaspace, thread stacks, GUI components, direct memory etc.

The amount of memory used at run time can change dynamically.