stringbuffer和stringbuilder是什么,StringBuilder和StringBuffer区别

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: