对于String和StringBuffer的区别与联系,相信大多数人都知道:
String是不可变的,一旦定义就不会改变,重新赋值只是新建了一个String对象。
StringBuffer是可变的,每次改变是对自身进行修改,因此在经常要对字符串进行拼接的情况最好用StringBuffer。
那为什么会有StringBuilder呢?
可以这么理解,StringBuffer和StringBuilder就像是HashTable和HashMap的区别一样,一个是线程安全,一个非线程安全;
在单一线程或不考虑线程安全的情况下,使用StringBuilder效率比StringBuffer要高1.5倍左右,其他的方面两者大致相同。没错,使用StringBuilder只能让我的代码执行速度快0.01ms,但我就缺这0.01ms。