前两者区别最大在于字符串拼接,后两者区别在线程于安全不安全
String首先它由final修饰,是一个不可改变的字符序列,String的字符串拼接每次拼接一个都会创建一个StringBuilder对象比如拼接”小”+”鸟”+”好可爱”,它会依次建立”小”,”小鸟”,”小鸟好可爱”三个StringBuilder对象进而使用toString转换为String,而StringBuilder是一个可改变的字符序列只有两个对象,一次拼接即可,但是它在多线程下是不安全的.StringBuffer和StringBuilder类似,但是StringBuffer方法带了synchronized关键字,因此是线程安全的.