stringbuffer和stringbuilder

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stringbuffer和stringbuilder相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

Stringbuffer和StringBuilder

Java StringBuffer和StringBuilder类

Java StringBuffer和StringBuilder类

Java StringBuffer 和 StringBuilder 类

StringBuffer 和StringBuilder

StringBuffer和StringBuilder