String的内容不可修改,StringBuffer与StringBuilder的内容可以修改。
性能区别:
三者中StringBuilder执行速度最佳,StringBuffer次之,String的执行速度最慢(String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,String对象一旦创建后该对象是不可更改的,后两者的对象是变量是可以更改的)
安全区别:
String、StringBuffer是线程安全的,StringBuilder是线程不安全的(所以如果程序是单线程的使用StringBuilder效率高,如果是多线程使用StringBuffer或者String)
相同之处:
1.三者在java中都是用来处理字符串的
2.三个类都被final修饰,因此都是不可继承的
3.StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类)
4.StringBuffer与StringBuilder大部分功能是相似的