小瓜牛漫谈 — String、StringBuffer、StringBuilder
任何一个系统在开发的过程中, 相信都不会缺少对字符串的处理。 在 java 语言中, 用来处理字符串的的类常用的有 3 个: String、StringBuffer、StringBuilder。 它们的异同点: 1) 都是 final 类, 都不允许被继承; 2) String 长度是不可变的, StringBuffer、StringBuilder 长度是可变的; 3) StringBuffer 是线程安全的, StringBuilder 不是线程安全的。 String 类已在上一篇随笔 小瓜牛漫谈 — String 中叙述过, 这里就不再赘述。本篇随笔意在漫游 StringBuffer 与 StringBuilder。 其实现在网络上谈论 String、StringBuffer、StringBuilder 的文章已经多到不可胜数了。小瓜牛不才, 蜗行牛步, 慢了半个世纪。。。 StringBuilder 与 StringBuffer 支持的所有操作基本上是一致的, 不同的是, StringBuilder 不需要执行同步。同步操作意味着 要耗费系统的 一些额外的开销, 或时间, 或空间, 或资源等, 甚至可能会造成死锁。 从理论上来讲, StringBuilder 的速度要更快一些。 串联字符串的性能小测: 1 public class Application { 2 3