Java StringBuffer与StringBuider

转载 2015年07月09日 23:19:22
StringBuffer、StringBuilder、String中都实现了CharSequence接口!


CharSequence是一个定义字符串操作的接口,它只包括length()、charAt(int index)、subSequence(int start, int end) 这几个API。

StringBuffer、StringBuilder、String对CharSequence接口的实现过程不一样,如下图所示:


图1  对CharSequence接口的实现

可见,String直接实现了CharSequence接口;StringBuilder 和 StringBuffer都是可变的字符序列,它们都继承于AbstractStringBuilder,实现了CharSequence接口。

总结

线程安全:
  • StringBuffer:线程安全
  • StringBuilder:线程不安全

速度:
一般情况下,速度从快到慢为 StringBuilder > StringBuffer > String,当然这是相对的,不是绝对的。

使用环境:
  • 操作少量的数据使用 String;
  • 单线程操作大量数据使用 StringBuilder;
  • 多线程操作大量数据使用 StringBuffer。

ps:CharSequence

北风网
这是一个接口:在JDK1.4中,引入了CharSequence接口,实现了这个接口的类有:CharBuffer、String、StringBuffer、StringBuilder这个四个类。 

CharBuffer为nio里面用的一个类,String实现这个接口理所当然,StringBuffer也是一个CharSequence,StringBuilder是Java抄袭C#的一个类(这句不确定),基本和StringBuffer类一样,效率高,但是不保证线程安全,在不需要多线程的环境下可以考虑。 

提供这么一个接口,有些处理String或者StringBuffer的类就不用重载了。

但是这个接口提供的方法有限,只有下面几个:charat、length、subSequence、toString这几个方法,感觉如果有必要,还是重载的比较好,避免用instaneof这个操作符。 

相关文章推荐

java中String和StringBuider,StringBuffer的区别

关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下    1.三者在执行速度方面的比较:StringBuilder >  Strin...

java中String stringBuffer StringBuider 深入理解

首先要明白,java只用的wrapper类型都是不可变的,什么是不可变类型呢?顾名思义,就是这种类型的对象一旦创建好之后,无论调用何种方法都无法改变该对象的任何的属性。String 源码中,它的所有属...

Java中的StringBuffer和Stringbuider

package practice;/** * Created by fangjiejie on 2016/11/30. */ public class Chuan { public sta...

根据源码总结String,StringBuffer,StringBuider差异

String,StringBuffer,StringBuider差异

Java中的String、StringBuffer和Math类

  • 2008年01月29日 17:25
  • 102KB
  • 下载

.net 中的StringBuider

String 对象是不可改变的,StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值。     有两种种方法:(1)直接:Str...

Java StringBuffer

  • 2017年06月21日 22:56
  • 5KB
  • 下载

【java】String类和StringBuffer类常用操作

【java】String类和StringBuffer类常用操作 String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。St...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java StringBuffer与StringBuider
举报原因:
原因补充:

(最多只允许输入30个字)