>>640
簡単に計算。integer型として。
4byte * 2 * 2000 * 2000 => 32byte * k * k => 32Mbyte
boolean型はどれだけ食うのか分からないが、さらに4-16Mbyte

ということで、先の値を目安にし、ヒープを明示的に確保します。
以下ページから java のページ、-Xmx や -Xms オプションを参照のこと。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/tools.html

他の方法もあるとは思いますが、安易な解決法として。