我有此代碼java的整數數組大小混亂
int[] i = new int[127*1024];
正在
int[] i = new int[128*1024];
是投擲
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at memory.main(memory.java:123)
運行此使用的後續在一個64位的Windows機器,命令jdk 1.8 java -Xms1M -Xmx1M memory
根據我的理解,java int是4字節(32位)和int []數組是一個對象。 在上述情況下,如果大小爲131.072字節(128 * 1024),並且堆空間爲1mb,則其失敗 任何人都可以幫助解釋爲什麼它的內存不足?
對不起,您是否認爲堆中沒有其他東西佔用任何空間?說,Java VM的所有其他基礎架構? –
而且大小是128 * 1024 * 4字節(+幾個字節的開銷),所以是你說的4倍。 – biziclop
您對此陣列至少使用128 * 1024 * 4 = 524288字節,剩下的Java將少於1/2Mb。從未見過它在20年內就這麼小。 – EJP