我知道代码片段-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");
答案 0 :(得分:2)
首先,为了提高性能,您应该使用StringBuilder
(而不是StringBuffer
)。 StringBuilder
效率更高,因为(与StringBuffer
不同)并非每个方法都是同步的。最后,您发布的示例几乎肯定会具有相同的性能,因此请使用您喜欢的样式。
答案 1 :(得分:1)
我已经编写了一个小的java程序来检查这个(两种方式),因为没有任何其他解释。我也尝试过两种不同的操作系统,我认为Snippet-2每次都是性能的赢家。我甚至把两个都放在运行超过1000次的for循环中,每次我看到Snippet-2的时间都比1少。
你也可以用各种可能的方式尝试自己。
很有趣:)
答案 2 :(得分:0)
代码表示通常是"味道",但这两个结构应该在您使用的Java编译器中具有相同的优化! (编译器的任务是将你所写的内容和高效率放在一起,在Java的情况下,当语言编译成字节码并且字节码在执行时处理时(或者在Android应用程序的情况下, " APK"本身是"编译"当它被更改/更新时。