[英]max amount of data a String can hold in java
好吧,我所做的是:
public static void main(String args[])
{
String s = new String(new char[Integer.MAX_VALUE-1]);
s = s + ".";
}
我得到的是:
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
從技術上講,限制是Integer.MAX_VALUE
字符,但是,某些 JVM 實際上無法創建長度為Integer.MAX_VALUE
的數組,因此您會發現實際限制是少幾個字符。
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
try {
char[] chars = new char[Integer.MAX_VALUE - i];
System.out.println("Created new char[MAX_VALUE-" + i + "]");
break;
} catch (OutOfMemoryError oome) {
if (i == 0)
oome.printStackTrace();
}
}
}
在我的 Windows 10 Java 8 update 251 機器上打印
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at A.main(A.java:12)
Created new char[MAX_VALUE-2]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.