一、区别
1、String
(1)字符串常量,字符串不可改变。由于String底层是一个final类型的字符数组,因此String的值是不可变的,每次对String的操作都会生成新的String对象,容易造成内存浪费;
2、StringBuffer
(1)StringBuffer 可变字符串,底层都是可变的字符数组;
(2)String Buffer是线程安全的,因为它的方法加了Synchronized对象锁。
(3)StringBuffer 执行速度慢。
3、StringBuilder
(1)可变字符串,底层都是可变的字符数组;
(2)线程不安全;
(3)执行速度快。
二、执行速度比较
执行速度:StringBuilder > StringBuffer > String