2014-08-29 72 views
2

我知道代码片段-1是不好的编码质量,最好的做法是代码片段-2。
但它会降低代码片段1中的性能吗?
这两个片段之间有什么表现吗?如果是,那么如何?StringBuffer中的单行追加和多行追加的区别?

片段-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"); 

回答

2

首先,性能应该使用StringBuilder(不StringBuffer)。 StringBuilder更高效,因为(与StringBuffer不同)不是每种方法都是同步的。最后,你发布的例子几乎肯定会有相同的性能,所以使用你喜欢的风格。

+0

我的应用程序是线程安全的,所以就如果我使用'StringBuffer',而不是'StringBuilder'将不会发行,对不对? – unknown 2014-08-30 17:19:38

+1

@unknown'StringBuilder'速度更快,我会更喜欢到'StringBuffer'你的情况。 – 2014-08-30 17:20:50

0

代码演示往往是“味道”的问题,而是这两种结构应该Java编译器内有相当的优化,你使用! (编译器与带你写的东西,使之高效,在Java的这种优化的情况下,可能会出现两个任务时的语言编译成字节码,并与字节码在执行时处理(或Android应用程序,当情况在“APK”本身就是“编译”,当它改变/更新)。

1

HI我已经写了一个小型的Java程序来检查这个(双向),因为没有任何其他的解释。我已经尝试了两种不同的OS也和我想以某种方式摘录-2在性能上每一次的赢家。我甚至已经把无论是在为它运行了1000次以上每次我看到片段-2是越来越少的时间比1.

时间循环

你也可以用一切可能的方法试试你自己。

它的乐趣:)