When I run the following Java program, which consumes all free memory with artificial data structures, something interesting happens. Something very similar happens to all real applications: https://gist.github.com/CodingFabian/8708393 [node04] ~ ➜ jdk1.7.0_51/bin/java -Xms31g -Xmx31g -Xmn50m Memory Total Memory (in bytes): 33279705088 Free Memory (in bytes): 33278908064 Max Memory (in bytes): 332

