第一发 StringBuffer和StringBuilder为啥常常优于String
String: 是不可变对象,创建出来就不能修改他的值。
String类使用数组保存字符串,且有final修饰,所以不可变。
修改只能是重复创建。
String的+操作。会自动被编译器优化为StringBuilder
StringBuffer和StringBuilder:可变,可调用类中的方法去修改值。是追加空间。
第二发 StringBuffer和StringBuilder的区别
StringBuffer:对方法加了同步锁。所以~线程安全~多线程时效率高。
StringBuilder:没有加同步锁。所以~非线程安全~单线程时效率高。