他们都可以用来处理字符串。
String初始化后是不能改变的。不推荐在需要频繁改变字符串的情况下使用,因为String对象初始化之后是不能改变的,程序是通过不断的创建新对象,并且重新建立引用来实现字符串的改变的。这会浪费内存空间。
StringBuffer是一个字符串的缓冲区,主要提供了对字符串的添加(append),插入(insert),修改(setCharAt),删除(delete),查询(indexOf),截取(substring)等方法,就是用来处理字符串的,处理完的字符串使用toString方法就可以得到String对象。
StringBuilder和StringBuffer具有相同的功能,区别在于StringBuilder线程不同步,在单线程时,不用判断锁,相对于线程安全的StringBuffer来说,可以提高一些性能。但是在多线程并发访问的时候,会造成数据异常,需要进行线程同步处理。 |