The Java virtual machine (JVM) is the platform dependent interpreter of the Java bytecode (i.e., the classes). It translates the bytecode into machine specific instructions.

Amount of available memory

If you start the virtual machine without any parameters it takes default values for stack and heap. In case you run into OutOfMemory exceptions, try to start your JVM with a bigger maximum heap size. (However, there's a limit, depending on your OS. See the 32-Bit and 64-Bit sections.)


With a 32-Bit machine you can address at most 4GB of virtual memory. Different operating systems divide up the memory further into system/kernel and user space.

From experience, you can achieve the following maximum sizes for the heap on Windows and Linux:
  • Windows: 1.4GB
  • Linux: 1.7GB


Larger heap sizes are available when using 64-bit Java in a conjunction with a 64-bit operating system.

There is more information available here.