笔记记录2
相同点:底层都是通过char数组实现的
不同点:
1普通的string对象创建,对其进行操作,会开辟新的存储空间,而不是在原地址上进行修改,但是Stringbuilder和String Buffer方法是可以在原地址上进行修改的。
2Buffer出现的版本早于Builder,两者内容大致相同,但是buffer比Buider多了一个锁(synchronized),使得Buffer的安全性大于Builder,在有安全性的同时,每次用锁也使得Buffer效率低于Builder。
当需要考虑线程安全的场景下使用 StringBuffer,如果不需要考虑线程安全,追求效率的场景下可以使用 StringBuilder。