社区
Java SE
帖子详情
求助: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
打赏
收藏
求助:StringBuffer初时容量设置怪异问题
设置StringBuffer初始容量为1000,5000,10000,按行读取大文件并append到StringBuffer中,都正常 但当设置为3,6,9以及300,3000,6000,9000时,则导致“java.lang.OutOfMemoryError: Java heap space”
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
没问题啊,我试过了。是别的问题吧。
JavaSE基础视频精讲⑫:String,StringBuilder和
StringBuffer
本课程适用于零基础小白快速入门Java语言技术,通过课程学习可以清晰了解JavaString,StringBuilder和
StringBuffer
。课程配套完整的(笔记+代码+作业)
第4关:
StringBuffer
类的定义和使用 - 字母反转
任务描述: 在本关中,你将被要求编写一个程序,将一段文本中的各个单词的字母顺序进行反转,例如: oT eb ro ton ot eb 反转后变为: To be or not to be 相关知识 split方法 在处理字符串的时候我们经常需要将他们...
(JAVA):字符串的拼接插入-----
StringBuffer
类的常见API
StringBuffer
在字符串操作上克服了String拼接会产生多个对象的
问题
。它可以以一个字符串作为参数进行初始化。 常见的三种初始化: 第一种:
StringBuffer
str1 = new
StringBuffer
(); //无参构造函数初始化 第...
StringBuffer
类初始
容量
及扩容
StringBuffer
类可以创建可修改的...1.
StringBuffer
()的初始
容量
可以容纳16个字符,当该对象的实体存放的字符的长度大于16时,实体
容量
就自动增加。
StringBuffer
对象可以通过length()方法获取实体中存放的字符序列长...
Java:
StringBuffer
StringBuffer
的特点: 1、线程安全:不安全,存在同步操作同一数据的行为,效率高。安全的时候,没有同步操作,效率低。 2、
StringBuffer
是一个可变序列。 3、
StringBuffer
又被称为字符缓冲区,把它当成一个字符...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章