title: How to simulate the Out Of memory : Requested array size exceeds VM limit
body: <p>I used the <a href="http://www.oracle.com/technetwork/java/javase/memleaks-137499.html#gbyvi" rel="noreferrer">Out Of Memory help from sun's site</a>. Where it is quoted as</p>
  <blockquote>
  <p><strong>Out Of Memory : Requested array size exceeds VM limit</strong></p>
  <p>This indicates that the application attempted to allocate an array that is larger than the heap size. For
  example, if an application tries to allocate an array of 512MB but the maximum heap size is 256MB,
  then this error will be thrown. In most cases the problem is likely to be either that the heap size is too
  small or that a bug results in the application attempting to create an array whose size is calculated to
  be incorrectly huge.</p>
  </blockquote>
  <p>I tried to simulate this by</p>
  <pre><code>import java.util.ArrayList;
  import java.util.List;
  
  public class JavaTest {
      public static void main(String[] args){
          long[] ll = new long[64*1024*1024];
      }
  }
  </code></pre>
  <p>on my machine with</p>
  <pre><code>javac *.java;java -Xmx256m JavaTest
  </code></pre>
  <p>But the above line is producing</p>
  <pre>
  Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
      at JavaTest.main(JavaTest.java:7)
  </pre>
  <p>What am I missing?</p>
  <p><strong>Update :</strong>
  My java version is</p>
  <pre>
  $java -version
  java version "1.6.0_15"
  Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
  Java HotSpot(TM) Server VM (build 14.1-b02, mixed mode)
  </pre>