String、StringBuffer以及StringBuild
2017-06-17 本文已影响28人
千叶鸟
String
① 字符串是常量;它们的值在创建之后不能更改。
② Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的。
StringBuffer
①
线程安全
的可变字符序列。类似于 String 的字符串缓冲区,但不能修改。
②StringBuffer
上的主要操作是append
和insert
方法
StringBuilder
① 一个可变的字符序列。但不保证同步。
②StringBuffer
的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍),建议优先采用该类,因为在它比StringBuffer
要快。
以上内容源于jdk1.6 API文档
总结
-
在实际开发中,由于String是不可变的,所以,为了避免内存资源的浪费以及从性能上考虑,所以建议
对于需要经常变动的字符串,采用StringBuffer或StringBuilder
,对于这二者的选择,多线程操作使用StringBuffer,否则,优先使用StringBuilder
(处理速度更快),其实一般来说,基本都是用StringBuilder
-
对于字符串的拼接,例如:
String str = "a"+"b"+"c"
,我们应该直接使用String,因为经过JVM的处理,它相当于String str = "abc"
,而且,处理速度是比你自己创建StringBuffer一个一个append是要更加高效的。