三者之前的区别,从两个方面来说,执行速度和线程安全。
String:适用于少量字符串的操作
StringBuffer:适用于多线程下的字符串操作
StringBuilder:适用于单线程下的字符串操作
执行速度
StringBuilder>StringBuffer>String,即String类型速度最慢
String最慢的原因:
String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
String str1 = "abc";
String str1 = str1 + "edf";
两个String相加,是jvm通过new出来一个新的String来实现的。
但:
String str = "abc" + "edf" 执行速度最快(比StringBuilder,StringBuffer都快)
线程安全
StringBuffer是线程安全的,String及StringBuilder是非线程安全的。