String 是最常用的,它是一个字符串,值在创建之后不能更改。
StringBuffer 是一个可变的字符序列,是一个缓冲区,其长度和内容可以通过方法改变。
它是同步的,所以多线程时是安全的。
StringBuilder 也是一个可变的字符序列,它是最新的(1.5才出的),
而StringBuffer和String都是以前版本就有的。它是不同步的,所以效率高一点。但用
于多线程就不安全。
区别:
1,当多次要改变字符串的内容时,不要用String,因为它的效率最低。
2,对于StringBuffer和StringBuilder来说,优先使用StringBuilder。
3,如果用于多线程中操作,要选用StringBuffer,它安全。
所以说,安全和效率两者是反比例的,要追求高效率安全性就差一些,安全性高则效率低,
这就需要情况而定了。看你更追求的是效率,还是安全,具体上需要综合考虑。 |