日期:2014-05-18  浏览次数:20744 次

请问StringBuffer可以append多少次
java.lang.StackOverflowError
java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:394)
java.lang.StringBuffer.append(StringBuffer.java:225)
antlr.BaseAST.toStringList(BaseAST.java:340)
antlr.BaseAST.toStringList(BaseAST.java:346)
这个错误是什么原因

------解决方案--------------------
这是堆栈溢出,问题不在 append 上,可以是某个递归出问题了。

StringBuffer 的 append 没有什么限制,但是总的字符大小不能超过 int 型的长度,差不多是 2GB,不过不大可能会超过。
------解决方案--------------------
BaseAST的toStringList方法出现了问题
和append没关系,append可以连接StringBuffer所能容纳的容量
Integer.MAX_VALUE
值为0x7fffffff字节