处理java堆空间异常
那么,假设我有一个
String s = "{(30,2884090,1410450570357,235),(30,2863348,1410451100148,285)}";
Matcher match = Pattern.compile("(\\d+,)*\\d+").matcher(s);
所以有时候问题是,字符串s太大,导致堆错误:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:2694)
at java.lang.String.<init>(String.java:203)
- 如何将其作为异常处理,以便代码仍保持正常运行
- 有没有更好的方法来处理这么大的字符串李>
# 1 楼答案
看看here,它是处理不同类型的带字符串的OOM(内存不足)异常的绝佳资源。它展示了如何使用concatenation(简单,但也容易抛出错误!)或者StringBuffer(一个经过充分优化的解决方案)
另外,如果需要,可以使用-Xmx command, some helpful hints here增加可用堆大小
# 2 楼答案
你不能把它当作例外处理。你可以选择: