String、StringBuffer、StringBuilder的区别:
String因为它源码中用的final修饰,所以其声明的是不可变的对象,每次操作都会生成新的string对象,然后将指针指向新的string对象。而StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer、StringBuilder的区别:
StringBuffer
和
StringBuilder
最大的区别在于,
StringBuffer
是线程安全的,它源码中每个方法都加了
synchronized
同步锁 ,而
StringBuilder
是非线程安全的,但
StringBuilder
的性能却高于
StringBuffer
,所以在单线程推荐使用
StringBuilder
,多线程环境下推荐使用
StringBuffer
。