锁定老帖子 主题:10万个字符串相加会发生什么??
精华帖 (0) :: 良好帖 (3) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-02
最后修改:2010-02-02
传arry不传iterator吧.
|
|
返回顶楼 | |
发表时间:2010-02-02
到底这个需求该如何解决呢?
用什么数据结构来存放才是王道? 楼主的解决方法效率、性能提升多少? |
|
返回顶楼 | |
发表时间:2010-02-02
自己写个缓存吧,数量过大,真大到JVM分配的内存都不够用了,一样OutOfMemory
|
|
返回顶楼 | |
发表时间:2010-02-03
很恐怖的代码,像我们这样的小服务器,碰到这样的代码,也只有死的份了。觉得开始设计的就有问题,就不应该这么相加。
|
|
返回顶楼 | |
发表时间:2010-02-03
我很佩服楼主 不用StringBuilder
|
|
返回顶楼 | |
发表时间:2010-02-08
在数据库拼接查询串等地方可以用StringBuffer,应该就不会遇到这样的问题了
|
|
返回顶楼 | |
发表时间:2010-02-08
10W个简单的字符串,OOM的几率很小吧,得有多大的并发a
StringBuffer比较可靠 |
|
返回顶楼 | |
发表时间:2010-02-10
StringBuilder
|
|
返回顶楼 | |
发表时间:2010-02-10
楼主,明显对Java代码的优化没有什么概念。
|
|
返回顶楼 | |
发表时间:2010-02-14
kevintse 写道
binlaniua 写道
其实
String a = "1" + ..... + ... 和 StringBuffer sbuff = new StringBuffer(); sbuff.append(..).append(..) 是一样的.. 和 String a = "1"; a += "b"; 就不一样了。。 Oh, my god...不知道你是在哪里看到的~ "1" + ..... + ...居然跟StringBuffer.append()是一样的? String.+ 与StringBuffer.append()相比,性能是很低效的。String.+每加一次就生成一个临时对象,StringBuffer.append()则是append过程中不断重新分配内存(次数要远远低于String.+)。 拼接大量字符串的时候,用StringBuffer.append()的性能远远高于String.+,只是相对耗费比较多的内存。 你可以测试一下,或者看一下String和StringBuffer的源代码。 binlaniua说的是对的,你可以写代码试试 String a = "1" + ..... + ...
|
|
返回顶楼 | |