![]() |
1
20
期待
A
CPerkins已经做了一些基准测试(参见
his answer
)他的结果符合我的直觉。他们说
|
![]() |
2
42
StringWriter是当您想写入字符串,但使用的API需要编写器或流时使用的。这不是一种选择,而是一种折衷:只有在必须的时候才使用StringWriter。 |
![]() |
3
20
好吧,因为答案似乎强调了风格上的原因,所以我决定做一个时间测试。
编辑
:根据robinst上面的评论,我现在有三个方法:一个是PrintWriter(StringWriter)样式的追加,还有两个是使用StringBuilder的:一个是在追加中追加换行符(如原来的:
哦,当然,创建的行数和行长是随机的,但是对于每对调用保持相同,因为我想避免缓冲区大小或行大小对结果的任何可能影响。 代码如下: http://pastebin.com/vtZFzuds
TL医生? 每个方法100000次调用的平均结果非常接近:
这是如此接近,以至于时间几乎与我无关,所以出于风格原因,我将继续按我一贯的方式来做:StringBuilder(带有单独的append)。当然,在使用这个已建立且成熟的代码库时,我将主要遵循现有的约定,以尽量减少意外。 |
![]() |
4
16
编剧 -StringWriter是写入StringBuffer的写入程序(类似于OutputStreams的ByteArrayOutputStream) -当然,如果你只是想在内存中构造字符串,那么StringBuilder就是你想要的。 结论 writer的设计意图是将字符数据推出一个流(通常是到一个文件或通过一个连接),因此能够使用writer简单地组装字符串似乎有点副作用。 StringBuilder(及其同步的同级StringBuffer)是 设计 StringBuilder API 你可以看到,你不仅可以做香草追加,但也取代,反向,插入等StringBuilder是你的字符串建设的朋友。 |
![]() |
5
7
我看到了PrintWriter方法的两个优点: (1) 你不必在每一行的末尾加上“+换行符”,如果你要写很多东西的话,这实际上会导致代码变短。 (2) 您不必调用System.getProperty();你让版画作者担心换行符应该是什么。 |
![]() |
6
2
在此链接中: http://nohack.eingenetzt.com/java/java-stringwriter-vs-stringbuilder 作者展示了StringWriter甚至比StringBuilder快一点,还说:“因此,当大量数据发挥作用时,StringWriter在性能上明显优于StringBuilder。” |
![]() |
7
0
考虑到这一点,StringBuilder可以稍微快一点。因此,如果要编写对性能敏感的代码,除非需要同步,否则最好使用StringBuilder。
在我的例子中,我必须在使用StringBuilder或StringWriter作为
总结一下:
|
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 4 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 4 月前 |
![]() |
rudraraj · java中未声明最终变量 4 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |