stringbuilder可容纳的最大字符数

Vic*_*jee 9 java stringbuilder max

我需要写10,000 x 30,000个字符.单个字符串构建器能够对所有字符进行编码,还是应该考虑一组字符串构建器?我无法访问测试用例,因此我无法亲自验证它.希望我能在这里找到答案.

提前致谢.

编辑:

我尝试使用循环添加10000 x 30000个字符.我得到以下例外情况.

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2367)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at Test.main(Test.java:19)
Run Code Online (Sandbox Code Playgroud)

如何处理这个"java堆空间"?

Jim*_*son 16

假设你有内存,长度是一个int,所以它应该可以容纳2GChar(4GB).您将使用"仅"600MB(每个字符3亿个@ 2字节).要小心你最终制作了多少副本...即toString().

  • 您需要使用`-Xms1024m -Xmx1536m`命令行选项增加VM可用的堆空间,该选项将初始分配设置为1GB,最大值设置为1.5GB.如果您在32位环境中运行,则可能会出现问题. (2认同)