38.黑马程序员-String、StringBuffer、StringBuilder比较
2012-10-17 09:19
393 查看
------- android培训、java培训、期待与您交流! ----------
一、StringBuffer
1.概念
String Buffer是字符串缓冲区、是一个容器(数据可以改变)。
而且长度是可以改变的。
可以直接操作多个数据类型。
最终会通过toString方法变成字符串。
定义:StringBuffer sb = new StringBuffer();
2.功能
CRUD
存储:
存储 StringBuffer append(数据):将指定作为参数添加到已有数据的结尾处。
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = sb.append(34); //注意sb==sb1,指向同一个缓冲区。
插入StringBuffer insert(index,数据):可以将数据插入到指定index位置。
删除
删除 StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
删除指定位置字符 StringBuffer deleteCharAt(index):删除指定位置的字符。
清空缓冲区 sb.delete(0,lenth());
获取
char charAt(int index)
int indexOf (String str)
int lastIndexOf(String str)
int length()
String substring (int start , int end)
修改
StringBuffer replace (start , end ,string)
void setCharAt(int index , char ch)
反转
stringBuffer reverse();
将缓冲区的数据存储到指定数组中,dst为目的。
void getchars(int srcBegin , int srcEnd, char[]dst, int dstBegin)
二、StringBuilder
概念: StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。 每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。
StringBuffer buf=new StringBuffer(); //分配长16字节的字符缓冲区
StringBuffer buf=new StringBuffer(512); //分配长512字节的字符缓冲区
StringBuffer buf=new StringBuffer("this is a test")//在缓冲区中存放了字符串,并在后面预留了16字节的空缓冲区。
三、StringBuffer与StringBuilder(JDK1.5)差别
StringBuffer是线程安全的可变字符序列,线程同步, StringBuilder不保证同步。
到底用哪一个?建议单线程用StringBuilder,多线程用StringBuffer。
一般情况下,速度从快到慢:StringBuilder>StringBuffer>String,这种比较是相对的,不是绝对的
四、总结
(1).如果要操作少量的数据用 = String
(2).单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
(3).多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
一、StringBuffer
1.概念
String Buffer是字符串缓冲区、是一个容器(数据可以改变)。
而且长度是可以改变的。
可以直接操作多个数据类型。
最终会通过toString方法变成字符串。
定义:StringBuffer sb = new StringBuffer();
2.功能
CRUD
存储:
存储 StringBuffer append(数据):将指定作为参数添加到已有数据的结尾处。
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = sb.append(34); //注意sb==sb1,指向同一个缓冲区。
插入StringBuffer insert(index,数据):可以将数据插入到指定index位置。
删除
删除 StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
删除指定位置字符 StringBuffer deleteCharAt(index):删除指定位置的字符。
清空缓冲区 sb.delete(0,lenth());
获取
char charAt(int index)
int indexOf (String str)
int lastIndexOf(String str)
int length()
String substring (int start , int end)
修改
StringBuffer replace (start , end ,string)
void setCharAt(int index , char ch)
反转
stringBuffer reverse();
将缓冲区的数据存储到指定数组中,dst为目的。
void getchars(int srcBegin , int srcEnd, char[]dst, int dstBegin)
二、StringBuilder
概念: StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。 每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。
StringBuffer buf=new StringBuffer(); //分配长16字节的字符缓冲区
StringBuffer buf=new StringBuffer(512); //分配长512字节的字符缓冲区
StringBuffer buf=new StringBuffer("this is a test")//在缓冲区中存放了字符串,并在后面预留了16字节的空缓冲区。
三、StringBuffer与StringBuilder(JDK1.5)差别
StringBuffer是线程安全的可变字符序列,线程同步, StringBuilder不保证同步。
到底用哪一个?建议单线程用StringBuilder,多线程用StringBuffer。
一般情况下,速度从快到慢:StringBuilder>StringBuffer>String,这种比较是相对的,不是绝对的
四、总结
(1).如果要操作少量的数据用 = String
(2).单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
(3).多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
相关文章推荐
- 黑马程序员 日记四:String、StringBuffer和StringBuilder的比较与总结
- String,StringBuffer,StringBuilder性能比较,线程安全测试,源码解析。
- Java String、StringBuffer、StringBuilder比较
- String的"+"-StringBuilder-StringBuffer比较
- 朝花夕拾:Java中String,StringBuffer,StringBuilder使用方法以及异同比较
- Java中字符串对象String、StringBuffer、StringBuilder的比较
- String、StringBuffer、StringBuilder比较
- String、StringBuilder、StringBuffer 用法比较
- String、StringBuilder、StringBuffer 用法比较
- String、StringBuffer、StringBuilder的比较
- java语言基础入门——String、StringBuffer、StringBuilder的比较
- 黑马程序员——Java String、StringBuffer、StringBuilder、基本数据类型对象包装类
- Java学习札记14:一个比较String、StringBuffer和StringBuilder之间效率差别的简单例子
- String,StringBuffer,StringBuilder性能比较
- java中String、StringBuffer、StringBuilder区别与比较
- 黑马程序员 _Java中的String、StringBuffer、StringBuilder
- Java的String与StringBuffer、StringBuilder的性能比较
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- 关于String ,StringBuffer,StringBuilder的比较
- JAVA回顾巩固之String、StringBuilder、StringBuffer结合源码比较