黑马程序员技术交流社区
标题:
StringBuffer
[打印本页]
作者:
vvvvvc
时间:
2016-6-2 01:19
标题:
StringBuffer
StringBuffer
1、是一个可变的字符序列
2、是线程安全的
String str1 = "abc"
String str2 = "d"
String str = str1 + str2
String str = str + "e"
"abc"+"d"
构造方法:
1、空参构造
2、传入一个int类型的数据,指定初始容量
3、传入一个String,创建一个指定内容的StringBuffer(使用最多)
成员方法:
1、length(),统计对象中字符的个数,也就是实际长度
2、capacity(),统计容器的大小
添加功能:
1、append功能:在末位加 sb.append()
2、insert功能:在中间插sb.insert(3,"abc")
"abcde"
删除功能:
1、deleteCharAt(int index)
2、delete(int start, int end)
替换功能:
replace(0,3,"a")
反转
reverse();
截取功能:
subString(int index);
subString(int start, int end);包含头不包含尾
强调:返回值类型String,而本身没有改变StringBuffer
String转StringBuffer
1、构造方法
2、append方法
StringBuffer转String:本质上都是调用构造方法
1、构造String(StringBuffer sb)
2、toString方法
3、subString()
数组转字符串:
1、array2String
dom4j
log4j
log4cxx
internationalization
i18n
2、append,可以节省一些内存
3、之前使用的是拼接,底层也是创建StringBuffer来拼接
String、StringBuffer、StringBuilder区别:
1、String是一个不可变的字符序列
2、StringBuffer、StringBuilder可变,
StringBuffer是1.0版本就出现了,是线程安全的,效率低下
StringBuilder是1.5版本出现的,线程不安全的,效率高
String和StringBuffer作为参数传递的不同
1、结论:String作为参数传递的时候,可以当做基本数据类型,因为String对象不可变
2、本质:搞清楚改变的是栈内存中的引用还是堆内存中的对象的数据
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2