String、StringBuffer以及StringBuilder

String

① 字符串是常量;它们的值在创建之后不能更改。
② Java 语言提供对字符串串联符号(”+”)以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的。

StringBuffer

线程安全的可变字符序列。类似于 String 的字符串缓冲区,但不能修改。
StringBuffer 上的主要操作是 appendinsert 方法

StringBuilder

① 一个可变的字符序列。但不保证同步。
StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍),建议优先采用该类,因为在它比 StringBuffer 要快。

以上内容源于jdk1.6 API文档

总结

  1. 在实际开发中,由于String是不可变的,所以,为了避免内存资源的浪费以及从性能上考虑,所以建议对于需要经常变动的字符串,采用StringBuffer或StringBuilder,对于这二者的选择,多线程操作使用StringBuffer,否则,优先使用StringBuilder(处理速度更快),其实一般来说,基本都是用StringBuilder

  2. 对于字符串的拼接,例如:String str = "a"+"b"+"c",我们应该直接使用String,因为经过JVM的处理,它相当于String str = "abc",而且,处理速度是比你自己创建StringBuffer一个一个append是要更加高效的。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!