[英]java.lang.OutOfMemoryError - new int[Integer.MAX_VALUE];
我在Eclipse中編寫了一個Main類,其代碼如下:
...
int []test = new int[Integer.MAX_VALUE];
...
它具有以下文件:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
這需要多少堆大小? 我使用以下方法增加了eclipse大小但仍然失敗:
-Xms4g
-Xmx4g
int
在Java中是32位。 您需要超過8G的內存來存儲該陣列(4 *(2 31 -1))。
因為你聲明了一個原始類型的向量(int),Java將嘗試為你的向量的每個位置分配32位
你向量的長度實際上是2147483647
所以做一些計算:
需要的內存= 32位x 2147483647 = 68719476704位= 8589934588字節
需要的內存= 8589934 KB
需要的內存= 8589 MB
需要的內存= 8.58 GB
因此,您需要大約8 GB才能運行您的應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.