StringBuffer append(“”)

lem*_*dit 2 java multithreading

我目前正在使用很多这样的方法重构应用程序:

StringBuffer buff1 = new StringBuffer("");

buff1.append("some value A");
buff1.append("");
buff1.append("some value B");
Run Code Online (Sandbox Code Playgroud)

编写这些代码行的编码器似乎不是白痴,是否有任何原因使我看不到对StringBuffer使用append(“”)?

Ste*_* B. 5

不。

鉴于它们是硬编码的字符串,所以写起来就一样

buff1 = new StringBuffer("some value Asome value B");
Run Code Online (Sandbox Code Playgroud)

顺便说一句,使用StringBuilder而不是StringBuffer效率更高(并且API相同)。

  • 仅仅因为您在多线程应用程序中使用StringBuffer并不意味着您必须使用线程安全的数据结构。仅当同一实例由多个线程共享时,才需要是线程安全的。 (2认同)