我試圖用Java創建二維數組如下:最大限度
int[][] adjecancy = new int[96295][96295];
,但它與下面的錯誤而失敗:
JVMDUMP039I Processing dump event "systhrow", detail "java/lang/OutOfMemoryError" at 2017/04/07 11:58:55 - please wait.
JVMDUMP032I JVM requested System dump using 'C:\eclipse\workspaces\TryJavaProj\core.20170407.115855.7840.0001.dmp' in response to an event
JVMDUMP010I System dump written to C:\eclipse\workspaces\TryJavaProj\core.20170407.115855.7840.0001.dmp
JVMDUMP032I JVM requested Heap dump using 'C:\eclipse\workspaces\TryJavaProj\heapdump.20170407.115855.7840.0002.phd' in response to an event
JVMDUMP010I Heap dump written to C:\eclipse\workspaces\TryJavaProj\heapdump.20170407.115855.7840.0002.phd
來解決,這是通過一種方法增加JVM內存,但我試圖提交在線編碼挑戰的代碼。在那裏它也失敗了,我將無法改變那裏的設置。
是否有任何標準限制或指導創建大型數組不應該超過?
是否必須是2D數組? – stholzm
您正在嘗試分配37GB的內存。這是相當多的,即使增加JVM內存也需要一臺大型機器。你需要找到一個更聰明的算法(這就是爲什麼它被稱爲編碼挑戰) – Henry
你問是否有可能不使用40GB的內存分配40GB的內存?不,這不對。如果您告訴我們*爲什麼*您正在嘗試這樣做,也許我們可以幫助改善您的解決方案。 – shmosel