String,StringBuffer,StringBuilder区别是什么?
2018-03-09 17:12
453 查看
可变性
String 不可变,是由定义final的字符数组实现的
/* The value is used for character storage. /
private final char value[];
StringBuffer、StringBuilder均可变,是由定义了临时数据transient的字符数组实现的
/**
* A cache of the last value returned by toString. Cleared
* whenever the StringBuffer is modified.
*/
private transient char[] toStringCache;
是否线程安全
String 对象不可变,即不可变对象永远是线程安全的
StringBuffer对方法加了同步锁synchronized,所以是线程安全的,比如获取其长度
@Override
public synchronized int length() {
return count;
}
StringBuilder并没有对方法加同步锁synchronized,所以是非线程安全的,比如添加字符
@Override
public StringBuilder append(String str) {
super.append(str);
return this;
}
String 不可变,是由定义final的字符数组实现的
/* The value is used for character storage. /
private final char value[];
StringBuffer、StringBuilder均可变,是由定义了临时数据transient的字符数组实现的
/**
* A cache of the last value returned by toString. Cleared
* whenever the StringBuffer is modified.
*/
private transient char[] toStringCache;
是否线程安全
String 对象不可变,即不可变对象永远是线程安全的
StringBuffer对方法加了同步锁synchronized,所以是线程安全的,比如获取其长度
@Override
public synchronized int length() {
return count;
}
StringBuilder并没有对方法加同步锁synchronized,所以是非线程安全的,比如添加字符
@Override
public StringBuilder append(String str) {
super.append(str);
return this;
}
相关文章推荐
- String 、 StringBuffer、StringBuilder有什么区别
- String,StringBuffer,StringBuilder 三者之间的区别是什么?
- String, StringBuffer, StringBuilder 三者之间的区别是什么?
- String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
- String , StringBuffer , StringBuilder有什么区别 深度解析 个人总结
- String,StringBuffer,StringBuilder之间的区别,以及使用中该注意什么(转)
- java基础(二)------ String,StringBuffer,StringBuilder有什么区别?
- String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
- String,StringBuilder以及StringBuffer这三个类之间有什么区别
- String,StringBuffer, StringBuilder 的区别是什么?
- String,StringBuffer, StringBuilder 的区别是什么?
- String, StringBuffer, StringBuilder 三者之间的区别是什么?
- Java中String、StringBuffer、StringBuilder、StringTokenizer有什么区别
- String、StringBuffer、StringBuilder到底有什么区别?
- String 、StringBuffer 、StringBuilder区别是什么?
- Java String、StringBuffer、StringBuilder有什么区别
- java中字符串操作string、stringBuffer和stringBuilder的区别以及其相关操作技术
- Java中String ,StringBuffer和StringBuilder的区别和用法
- StringBuilder、StringBuffer和String三者的联系和区别
- String、StringBuffer和StringBuilder的区别