2011-10-07 33 views

回答

2
之间(优势,劣势)

速度更快,但不是线程安全的。

您可以基本上以三种方式构建字符串。

  1. 仅通过连接字符串(“富” +“酒吧”) - 最慢
  2. 使用StringBuffer的,这是线程安全的,并且速度比#1
  3. 通过使用StringBuilder的,这是最快所有,但线程安全

一些其他方面的区别:

String:字符串不变;它们的值在创建后无法更改。字符串缓冲区支持可变字符串。使用+运算符连接字符串不会修改所涉及的字符串,它会创建一个新的字符串,它是要并置的字符串的组合。

StringBuffer:一个线程安全的,可变的字符序列。字符串缓冲区就像一个字符串,但可以修改。

StringBuilder:一个可变的字符序列。该类提供了与StringBuffer兼容的API,但不保证同步。

+2

..plus,(1)将在每次执行“+”时创建类String的新实例,因为字符串是不可变的。 – mazaneicha

+1

...虽然考虑到编译器会将大多数字符串连接(包括上面的)连接到一个StringBuilder中,除非您有一个分析器告诉您存在问题,否则即使担心它也不值得。 –

+0

同意。除了字符串连接之外,我几乎没有使用任何东西,因为这从来都不是我写的任何应用程序的性能瓶颈,但这在技术上就是官方的答案。如果没有证据,我不是微观优化的粉丝。 – jefflunt

相关问题