码迷,mamicode.com
首页 > 其他好文 > 详细

stringbuffer和stringbuilder

时间:2016-12-12 19:25:02      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:情况   修改   方法   nbsp   安全   insert   length   加载   元素   

StringBuffer是线程安全的可变字符序列。长度可变,类型任意,最终都要转换为字符串存储。是一个字符串缓冲区,是一个容器。用于临时存储数据。不过StringBuffer缓冲区内部是由数组来存储的。

我们先来说说和数组不同。

数组必须有长度而且必须是固定长度,因为可变长度的数组的原理是新建数组并复制数组元素到新数组中。里面装的元素都是按照数组定义类型存储的,如:int[] arr={1,2,3},数组arr里的元素都必须是int类型。数组只有length属性。只要有数组就必须有角标存在。

而StringBuffer长度可变类型任意,但不能修改只要将任意类型都转成字符串进行添加皆可。而且zifuchuanzaichuangjianqianhuochuangjianzhoyongdejiushi字符串缓冲区,当字符串缓冲区把字符串调整了以后进行toString就变成了字符串。

可安全的用对多线程,必要时对这些方法进行同步。

 String s="a"+2+"sd";的原理:

s=new StringBuffer().append("a").append(5).append("sd").toString();

主要操作是:append();insert();delete();reverse();反转

      replace();替换

StringBuilder和StringBuffer的功能相同,StringBuilder是StringBuffer的等价类,是可变的字符序列,主要用于单线程,非同步。没有线程安全同步加载,不需要判断锁,所以速度更快。所以在大多数情况下使用StringBuilder效率更高。

 

stringbuffer和stringbuilder

标签:情况   修改   方法   nbsp   安全   insert   length   加载   元素   

原文地址:http://www.cnblogs.com/peijie1996/p/6165397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!