下面给大家从JDK的源码解析下Java中String、StringBuilder、StringBuffer的区别。
(1)String类的类定义如下:
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence 这是JDK针对String类定义的源码。看到标红的final关键字了没,这就意味着一个String类不能够被继承,也就意味着一旦一个String类被创建它就不能被更改。
(2)StringBuilder类与StringBuffer类和String类的区别在于,StringBuilder和StringBuffer可以对字符串进行更改,体现在append(),和insert()等方法上。StringBuilder和StringBuffer
最大的区别在于StringBuffer是线程安全的体现在如下JDK源码:
public synchronized StringBuffer append(String str) {
super.append(str);
return this;
}而StringBuilder是基于单线程效率比StringBuffer高,但它是线程不安全的体现在如下JDK源码:
public StringBuilder append(String str) {
super.append(str);
return this;
}
3346



被折叠的 条评论
为什么被折叠?



