黑马程序员:StringBuffer与StringBuilder的介绍及区别
2013-11-10 12:28
369 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
StringBuffer是字符串缓冲区,是一个容器,有CURD功能(create,update,read,delete)增删改查
特点:
1.长度可以变化
2.可以直接操作多个数据类型
3.最终会通过toString方法变成字符串
当数据长度、类型都不确定,但最终是字符串的时候,可以用StringBuffer
1.存储
StringBuffer append():将制定数据作为参数添加到已有数据结尾处
StringBuffer insert(index,data):可以将数据插入到制定index位置
方法调用链:操作之后返回来还是同一个对象,方法可以继续调用
StringBuffer sb = new StringBuffer();
sb.append("abc").append(true).append(32).insert(1,"qq"); //aqqbctrue32
2.删除
StringBuffer delete(int start, int end);删除缓冲区中的数据,删除的数据包含start,不包含end
StringBuffer deleteCharAt(int index);删除指定位置的字符
sb.delete(0,sb.length()); 清空缓冲区
3.获取
char charAt(int index); 返回指定字符
int indexOf(String str); 返回第一个str字符串索引值
int lastIndexOf(String str); 返回倒数第一个str字符串索引值
int length(); 获取长度
String substring(int start, int end); 获取子串
4.修改
StringBuffer replace(int start, int end, String str); //包含头不包含尾,把制定位置范围的字符串替换成str
上面的方法要注意和String的有区别:String的是 replace(oldstr,newstr);
void setCharAt(int index, char ch); 修改指定位置的字符
5.反转
StringBuffer reverse();
6.将缓冲区中指定数据存储到指定字符数组中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);
示例:
StringBuffer sb = new StringBuffer("abcdef");
char[] chs = new char[6];
sb.getChars(1,4,chs,1); 结果chs = {'','b','c','d','',''}
JDK1.5版本之后出现了StringBuilder
StringBuffer是线程同步,相当于有锁
StringBuilder是线程不同步,效率高,支持StringBuffer所有方法
建议开发使用StringBuilder,特别是单线程,多线程可以自己加锁
JAVA升级的三个因素:
1.提高效率
2.简化书写
3.提高安全性
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
StringBuffer是字符串缓冲区,是一个容器,有CURD功能(create,update,read,delete)增删改查
特点:
1.长度可以变化
2.可以直接操作多个数据类型
3.最终会通过toString方法变成字符串
当数据长度、类型都不确定,但最终是字符串的时候,可以用StringBuffer
1.存储
StringBuffer append():将制定数据作为参数添加到已有数据结尾处
StringBuffer insert(index,data):可以将数据插入到制定index位置
方法调用链:操作之后返回来还是同一个对象,方法可以继续调用
StringBuffer sb = new StringBuffer();
sb.append("abc").append(true).append(32).insert(1,"qq"); //aqqbctrue32
2.删除
StringBuffer delete(int start, int end);删除缓冲区中的数据,删除的数据包含start,不包含end
StringBuffer deleteCharAt(int index);删除指定位置的字符
sb.delete(0,sb.length()); 清空缓冲区
3.获取
char charAt(int index); 返回指定字符
int indexOf(String str); 返回第一个str字符串索引值
int lastIndexOf(String str); 返回倒数第一个str字符串索引值
int length(); 获取长度
String substring(int start, int end); 获取子串
4.修改
StringBuffer replace(int start, int end, String str); //包含头不包含尾,把制定位置范围的字符串替换成str
上面的方法要注意和String的有区别:String的是 replace(oldstr,newstr);
void setCharAt(int index, char ch); 修改指定位置的字符
5.反转
StringBuffer reverse();
6.将缓冲区中指定数据存储到指定字符数组中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);
示例:
StringBuffer sb = new StringBuffer("abcdef");
char[] chs = new char[6];
sb.getChars(1,4,chs,1); 结果chs = {'','b','c','d','',''}
JDK1.5版本之后出现了StringBuilder
StringBuffer是线程同步,相当于有锁
StringBuilder是线程不同步,效率高,支持StringBuffer所有方法
建议开发使用StringBuilder,特别是单线程,多线程可以自己加锁
JAVA升级的三个因素:
1.提高效率
2.简化书写
3.提高安全性
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
相关文章推荐
- 【黑马程序员】String,StringBuffer和StringBuilder的区别
- Java中String、StringBuffer、StringBuilder的区别介绍
- 黑马程序员——String与StringBuffer、StringBuilder的应用与区别
- String和StringBuilder、StringBuffer的区别?
- Java:String、StringBuffer和StringBuilder的区别
- 关于String和StringBuilder、StringBuffer的区别?
- String、StringBuffer、StringBuilder区别
- 黑马程序员:装饰设计模式介绍及装饰模式与继承关系的区别
- StringBuffer和StringBuilder的区别
- String,StringBuffer与StringBuilder的区别??
- String,StringBuffer与StringBuilder的区别??
- String、StringBuffer与StringBuilder之间区别
- String、StringBuffer与StringBuilder之间区别
- String,StringBuilder和StringBuffer的区别
- java中int和integer,String,StringBuffer,StringBuilder的区别
- String,StringBuffer与StringBuilder的区别
- String,StringBuffer与StringBuilder的区别
- StringBuffer和StringBuilder的区别
- String、StringBuffer 和 StringBuilder的区别
- StringBuffer和StringBuilder和String的区别