StringBuffer中单行追加和多行附加的差异?

时间:2014-08-29 12:29:36

标签: java append stringbuffer

我知道代码片段-1的编码质量很差,最佳做法是代码片段-2 但是它会降低代码片段-1中的性能吗? 这两个片段之间有什么表现吗?如果是,那怎么样?

片段-1

StringBuffer strBuffer = new StringBuffer();
strBuffer.append("Text line 1");
strBuffer.append("Text line 2");
strBuffer.append("Text line 3");
strBuffer.append("Text line 4");
strBuffer.append("Text line 5");

片段-2

StringBuffer strBuffer = new StringBuffer();
strBuffer.append("Text line 1")
        .append("Text line 2")
        .append("Text line 3")
        .append("Text line 4")
        .append("Text line 5");

3 个答案:

答案 0 :(得分:2)

首先,为了提高性能,您应该使用StringBuilder(而不是StringBuffer)。 StringBuilder效率更高,因为(与StringBuffer不同)并非每个方法都是同步的。最后,您发布的示例几乎肯定会具有相同的性能,因此请使用您喜欢的样式。

答案 1 :(得分:1)

我已经编写了一个小的java程序来检查这个(两种方式),因为没有任何其他解释。我也尝试过两种不同的操作系统,我认为Snippet-2每次都是性能的赢家。我甚至把两个都放在运行超过1000次的for循环中,每次我看到Snippet-2的时间都比1少。

你也可以用各种可能的方式尝试自己。

很有趣:)

答案 2 :(得分:0)

代码表示通常是"味道",但这两个结构应该在您使用的Java编译器中具有相同的优化! (编译器的任务是将你所写的内容和高效率放在一起,在Java的情况下,当语言编译成字节码并且字节码在执行时处理时(或者在Android应用程序的情况下, " APK"本身是"编译"当它被更改/更新时。