2014-03-12 55 views

回答

1

數組大小僅限於堆大小。爲您的程序增加堆分配使用

-Xmx1500m 

作爲運行您應用程序時的jvm參數。

java -Xmx2000m ....... 

對於32位JAVA和64位以上的版本,您可以升至4GB。

+2

*「您可以爲32位JAVA增加4GB」* - 雖然技術上正確,但Windows將只允許您分配3GB - 只是說;) – MadProgrammer

+0

這是不正確的 - 您不能使用長於Integer.MAX_VALUE的單個數組'新' –

+0

好的想法,如果問題是關於數量的元素,如果是關於數組的大小仍然是正確的。 – Chamil

2

此刻,任何陣列的最大長度爲Integer.MAX_VALUE,對於64位和32位虛擬機均爲大約2G。

原因是new運營商接受int作爲長度參數(例如new int[intLength])。有一些建議允許long在未來的Java版本中發佈。

如果陣列/字符串的長度小於Integer.MAX_VALUE的,儘量增加你的最大堆大小 - 例如: -Xmx4g其中4剋意味着4GB

相關問題