String
創(chuàng)建的String類字符串其長(zhǎng)度是固定的闭专,雖然使用“+”可以達(dá)到附加新字符或字符串的目的奴潘,但會(huì)產(chǎn)生一個(gè)新的String實(shí)例,會(huì)在內(nèi)存中創(chuàng)建新的字符串對(duì)象影钉。
StringBuffer画髓、StringBuilder
兩個(gè)類都是可變的字符序列的類,大大提高了頻繁增加字符串的效率平委。StringBuffer支持并發(fā)操作奈虾,線性安全;StringBuilder不支持并發(fā)操作廉赔,非線性安全肉微,但在單線程中的性能比StringBuffer高。
常用方法
修改指定字符
public void setCharAt(int index,char ch) ? ? 將給定索引處的字符修改為ch蜡塌;
插入字符串
insert(int offset碉纳,String str) ? ? 將字符串插入此字符序列中
字符串反序
reverse() ? ? 將字符串反序輸出
刪除子字符串
delete(int start,int end) ? 移除此序列的子字符串中的字符馏艾。注:左閉右開
追加字符串
append()
三者之間的轉(zhuǎn)換
String<-->StringBuffer/StringBuilder: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String str=“String”劳曹;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?StringBuffer/StringBuilder sb=new StringBuffer/StringBuilder(str);
? ? str=sb.toString();
StringBuffer<-->StringBuilder
? ?StringBuffer sbf=new StringBuffer(sbr.toString()); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?StringBuilder sbr=new StringBuilder(sbf.toString()); ? ?
適用場(chǎng)景
(1)操作少琅摩、數(shù)據(jù)少铁孵,用String。
(2)單線程房资、操作多蜕劝、數(shù)據(jù)多,用StringBuilder志膀。
(3)多線程、操作多鳖擒、數(shù)據(jù)多溉浙,用StringBuffer。