首先介绍StringBuffer和StringBuilder之前先说一下String。
String是字符串类,String的字符串对象一旦赋值之后字符串内容是不能变动的,如果需要变动还会涉及到对象的创建等等比较麻烦,这时我们就引入了StringBuffer和StringBuilder类,它们两个大致功能一样,但又各有其长处。
StringBuffer
优点:
1、线程安全的
2、支持字符串长度以及空间容量的改变
缺点:
因为是是线程安全的,所以有同步机制,使得一个线程去操作对象时,其他线程是不能同时去操作StringBuffer对象的由此以来效率就降低了
StringBuilder
优点:
1、支持字符串长度以及空间容量的改变
因为是非线程安全的所以StringBuilder的操作效率要比StringBuffer要高很多
2、无需在修改字符串的情况下创建新的对象
3、在单线程操作中效率要比StringBuffer高
缺点:
非线程安全的
————————————————————————————————————————
共同之处:
StringBuffer和StringBuilder在字符串的修改过程中并不涉及未使用的新对象的创建。
总结:
StringBuilder在JDK1.5之前是没有的要注意;总之StringBuffer和StringBuilder并无谁最好之分,我们在写程序时,结合项目综合考虑其优缺点进行使用,将其功能充分的发挥出来即可。