答案因系統體系結構而異。
這個古老的機器時,我張貼的答案2012字符的
最大長度=
Java版本:1.6.0_35
操作系統:Windows 7
系統結構:32位(x86)
RAM:2 GB
處理器:Pentium雙核E5800 3.20GHz
在2016
字符的最大長度=
Java版本: 1.8
OS:Ubuntu的14 LTE和Windows 7
系統架構:64位(x86_64的)
RAM:8 GB
處理器:Intel(R)核心(TM)i3-4130 CPU @ 3。40GHz的
運行這個程序,你的自我
StringBuffer strbTest = new StringBuffer();
long len = 0;
try {
System.out.println("Wait.... til number not generated.");
while(true) {
strbTest.append("a");
len++;
}
} catch (OutOfMemoryError e) {
System.out.println("Max length on your system is "+len);
System.out.println("Error");
}
System.out.println("End");
輸出
Max length on your system is 37748734
不要使用一個StringBuffer時,你可以使用StringBuilder(它具有相同的限制雖然) – 2012-08-10 20:58:03
A 2^32-1 StringBuilder將需要4 GB。你想創建這麼長的字符串嗎? – 2012-08-10 20:58:47