stringbuffer和stringbuilder是什么,StringBuilder和StringBuffer区别
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
string中stringbuffer和stringbuilder的区别是:
区别1:线程安全
字符串缓冲区:线程安全,StringBuilder:线程不安全。因为字符串缓冲器的所有公开方法都是同步的修饰的,而StringBuilder并没有StringBuilder修饰。
字符串缓冲器代码片段:
@覆盖
公共同步StringBuffer append(String str) {
toStringCache=null
超级棒。append(字符串);
还这个;
}区别2:缓冲区
字符串缓冲器代码片段:
private transient char[]tostring缓存;
@覆盖
公共同步字符串toString() {
if (toStringCache==null) {
tostring cache=数组。copyofrage(值,0,计数);
}
返回新字符串(toStringCache,true);
}StringBuilder代码片段:
@覆盖
公共字符串toString() {
//创建副本,不共享数组
返回新字符串(值,0,计数);
}可以看出,字符串缓冲区每次获取转换对象为字符串都会直接使用缓存区的toStringCache值来构造一个字符串。
而StringBuilder则每次都需要复制一次字符数组,再构造一个字符串。
所以,缓存冲这也是对字符串缓冲器的一个优化吧,不过字符串缓冲器的这个转换对象为字符串方法仍然是同步的。
区别3:性能
既然字符串缓冲器是线程安全的,它的所有公开方法都是同步的,StringBuilder是没有对方法加锁同步的,所以毫无疑问,StringBuilder的性能要远大于字符串缓冲区。
以上就是线中字符串缓冲和动态串的区别?的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。