Java中String、StringBuilder、Stringbuffer之间的区别
String、StringBuilder、Stringbuffer是java面试中常常会问到的基础知识。
1、处理速度
在处理速度方面,StringBuilder > StringBuffer > String。因为String为字符串常量,在创建后是不可更改的,而StringBuilder和StringBuffer均为字符串变量。在Java中,对String对象进行的操作实际上是一个创建新的对象并且将旧的对象回收的一个过程,所以执行速度会慢。而StringBuilder和StringBuffer是直接对对象进行更改,无需创建和回收过程。所以速度相对较快。
2、线程安全
String是不可变的,所以线程是安全的。StringBuilder 不是线程安全的,StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的。