String:一旦创建,不会被改变。Java中对String对象进行的操作实际上是一个不断创建新的对象并且将旧的对象回收的一个过程,所以执行速度很慢。
StringBuffer、StringBuilder:都是可变对象,操作起来很快。但是StringBuffer是多线程安全,单线程中StringBuilder性能更高。
-通过源码比较
StringBuffer源码如下,里面比StringBuilder多加了锁和清楚缓存的方法,在多线程中更安全
- 对字符串的操作
String字符串的修改,是先建立一个StringBuffer,再调用StringBuffer的append方法,最后调用StringBuffer的toString方法,返回给String。String效率低 。