String,StringBuffer,StringBuilder联系,区别

三者的不同点:
看源码可以发现String类使用字符数组来保存字符串,数组是final修饰的,也没有insert() append()delete()这些方法,String对象是一个常量
/** The value is used for character storage. */
private final char value[];

StringBuffer,StringBuilder对象都是变量,都有insert() append()delete()这些方法
StringBuffer,StringBuilder共同点
都继承了AbstractStringBuilder这个抽象类。在抽象类中定义了一些子类的公共方法,子类只需要添加新的功能就可以了,不需要重写已经存在的方法。
StringBuffer,StringBuilder不同点
1)StringBuffer中的方法有synchronized关键字修饰,加上了同步锁,因此是线程安全的。而StringBuilde的方法没有加synchronized不是线程安全的。
2)由于StringBuffer中的方法有同步锁,多以效率低一些,在单线程的时候,还是没有同步锁的StringBuilder效率高一些。

猜你喜欢

转载自blog.csdn.net/shida_hu/article/details/80271632