可变于不可变
String时不可变字符串对象,StringBuilder和StringBuffer时可变字符串对象(其内部的字符串数组长度可变)
是否多线程安全
String中的对象时不可变的,也就可以理解为常量,显然线程安全
StringBuffer与StringBuilder中的方法和功能完全是等价的,只是StringBuffer中的方法大都采用了synchronized关键字进行修饰,因此时线程安全的,而StringBuilder没有这个修饰,可以被认为时非线程安全的。
三者的执行效率
sout(“H”+“A”)HA sout(‘H’+‘A’)137
String a=“hello” string b =“hello” sout(a==b) true