美文网首页
String、StringBuilder、StringBuffe

String、StringBuilder、StringBuffe

作者: 122604 | 来源:发表于2017-02-24 10:01 被阅读0次

1、可变性

String对数据的保存是通过字符数组存储,但是该数组使用了“final”进行修饰,所以是不可变的;String中定义:private final charvalue[];

StringBuilder和StringBuffer都是集成于AbstractStringBuilder,AbstractStringBuilder中对数据的保存也是通过字符数组进行保存的,但是没有进行"final"修饰,所以是可变的;AbstractStringBuilder中定义:char[]value;

2、安全性

String的数组是不可变得,可以理解成常量,所以是线程安全的;

AbstractStringBuilder中的数组是可变的,但是StringBuffer中方法使用了同步锁,因此也是线程安全的。而StringBuilder则是线程不安全的;

StringBuffer中方法如下:

@Override

public synchronizedStringBufferappend(Object obj) {

toStringCache=null;

super.append(String.valueOf(obj));

return this;

}

3、StringBuilder与StringBuffer的共同点

两者有共同的父类,所以他们有共同的父类方法,只是StringBuffer针对父类方法添加了同步锁;

单线程使用StringBuilder效率要高于StringBuffer;

相关文章

网友评论

      本文标题:String、StringBuilder、StringBuffe

      本文链接:https://www.haomeiwen.com/subject/mtoiwttx.html