求助:StringBuffer初时容量设置怪异问题

TTOS3302041 2009-08-07 04:29:38
设置StringBuffer初始容量为1000,5000,10000,按行读取大文件并append到StringBuffer中,都正常
但当设置为3,6,9以及300,3000,6000,9000时,则导致“java.lang.OutOfMemoryError: Java heap space”
...全文
364 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
TTOS3302041 2009-08-11
  • 打赏
  • 举报
回复
用String保存大容量字符串是显然不可取的
TTOS3302041 2009-08-10
  • 打赏
  • 举报
回复
感觉奇怪的只是为什么会存在诸如3000、6000之类的特例。。。
请教高手正面解答
chris_zley 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bearkin 的回复:]
个人建议不要用StringBuffer保存大量的字符串 导致内存java.lang.OutOfMemoryError: Java heap space是必然的
[/Quote]

那用String来保存大容量字符串吗?
TTOS3302041 2009-08-10
  • 打赏
  • 举报
回复
怎么就没人感兴趣呢?
BearKin 2009-08-08
  • 打赏
  • 举报
回复
个人建议不要用StringBuffer保存大量的字符串 导致内存java.lang.OutOfMemoryError: Java heap space是必然的
qingyunzhuimeng 2009-08-08
  • 打赏
  • 举报
回复
jvm分配内存过大而留给系统的内存太小 导致开启大量线程的时候失败
奋斗并快乐着 2009-08-08
  • 打赏
  • 举报
回复
第四种 jvm分配内存过大而留给系统的内存太小 导致开启大量线程的时候失败
xiaozejun 2009-08-07
  • 打赏
  • 举报
回复

发生了OutOfMemoryError,
有三种可能导致OutOfMemoryError。首先是,此 JVM有真实的内存泄漏,导致此JVM堆在内部实现时产生了一个Bug

第二种可能的OutOfMemoryError原 因只不过是,你没有为你的应用程序运行时给予足够多的可用内存。这种情况,有两种可能的方案,或者增加JVM堆可用大小,或者减少你的应用程序所需的内存 总量。提高JVM可用堆大小可以简单的使用JVM的 -Xmx 参数。假如你将此参数设置尽可能的大(可用内存极限不要超过系统物理内存,否则你的应用程 序将分页并暂停),仍然有以上所提到的内存问题,那么,你需要减少你的应用程序所可能用到内存总量。减少应用程序内存可能是简单的,你可能允许一些集合过 大,例如使用了许多大的缓冲区。或者它过于复杂,要求你重新实现一些类,乃至重新设计应用程序。

读者 Jams Stauffer 指出有些JVM(例如 sun的 JVMs),还有一个“Perm”参数用来处理JVM结构与类对象。如果你正在使用一个数量非常巨大的类集,它有可能运 行在"Perm"空间之外,然后你需要增加此空间的大小,例如,sun的JVM使用 -XX:PermSize 与 -XX:MaxPermSize 选 项。

第三种导致OutOfMemoryError最为常见,无心的对象引用保持。你没有明确无误的释放对象,以致于你的堆增长再增长,直到你没有额外的空间。
bigbug9002 2009-08-07
  • 打赏
  • 举报
回复
堆内存溢出了?不会吧?
贴出代码来?
TTOS3302041 2009-08-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 ttos3302041 的回复:]
设置StringBuffer初始容量为1000,5000,10000,按行读取大文件并append到StringBuffer中,都正常
但当设置为3,6,9以及300,3000,6000,9000时,则导致“java.lang.OutOfMemoryError: Java heap space”
[/Quote]
读取的是16M的txt文件。
读取方式
BufferedReader br = new BufferedReader(new FileReader("filePaht"));
zhouzongjiu 2009-08-07
  • 打赏
  • 举报
回复
没问题啊,我试过了。是别的问题吧。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧