1.Stringbuffer,String,Stringbuilder的异同
String:不可变字符序列;
StringBuffer:可变字符序列;线程安全,但效率低;
StringBuilder:可变字符序列;线程不安全,效率高;
源码分析
String str=new String();//底层new char[0];
StringBuffer str1=new StringBuffer;//底层char[] value=new char[16];
str1.append('a');//底层value[0]='a';
StringBuffer str2=new StringBuffer("abc");底层//char[] value=new char["abc".length()+16];
2.常用方法
Stringbuffer和Stringbuilder的常用方法是相同的,只是StringBuffer代码是同步的。
StringBuffer
append
(xxx)
:提供了很多的
append()
方法,用于进行字符串拼接
StringBuffer
delete
(int start,int end)
:删除指定位置的内容
StringBuffer
replace
(int start, int end, String str)
:把
[start,end)
位置替换为
str
StringBuffer
insert
(int offset, xxx)
:在指定位置插入
xxx
StringBuffer
reverse
()
:把当前字符序列逆转
public int
indexOf
(String str)
public String
substring
(int start,int end)
public int
length
()
public char
charAt
(int n )
public void
setCharAt
(int n ,char ch)