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是要更加高效的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容