JAVA筆記-API-StringBuffer

StringBuffer

線程安全(同步)的可變字符串
與String區別:
前者長度內容可變,後者不可
前者減少空間資源使用。

構造方法:
StringBuffer() 
          容量=16 
StringBuffer(int capacity) 
          容量=capacity 
StringBuffer(String str) 
          容量=16+str.length() 

成員方法:
public int capacity();//返回當前容量
public int length();//返回字符串長度

添加功能:
public StringBuffer append(String str);//可以把任意類型的數據增加到字符串末端,並返回緩衝區
public StringBuffer insert(int index,String str);//把任意類型的數據插入到index位置後,並返回緩衝區本身
例:
StringBuffer sb = new StringBuffer();
sb.append("a").append(true).append(1).append(22.45);
sb.insert(1,"bc");
System.out.print(sb);//abctrue122.45

刪除功能:
public StringBuffer deleteCharAt(int index);//刪除index位置的指定字符
public StringBuffer delete(int start,int end);//刪除從start開始end結束範圍的字符串,左開右閉原則。
注意:
StringBuffer sb = new StringBuffer(“hello”);
//刪除e;
sb.deleteCharAt(1);
//刪除o
sb.deleteCharAt(3);//這裏是3,而不是4,因爲e已經被刪掉了。sb=hllo。

替換功能:
public StringBuffer replace(int start,int end,String str)
反轉功能:
public StringBuffer reverse();

String和StringBuffer相互轉換:
String --> StringBuffer
A:通過構造方法
String s=new String("a");
StringBuffer sb=new StringBuffer(s);
B:通過append方法
sb.append(s);

StringBuffer --> String
A:通過構造
StringBuffer sb=new StringBuffer("b");
String s=new String(sb);
B:通過toString()方法
String str=sb.toString();

面試題:
1.String,StringBuffer和StringBuilder的區別?
A:String內容不可變,StringBuffer和StringBuilder內容是可變的
B:StringBuffer是同步的安全的,但效率低,StringBuilder不同步但效率高,不安全。

2.StringBuffer和數組的區別?
兩者都是容器。
StringBuffer的數據最終返回的是字符串
一個數組中的數據類型必須是相同的
數組定長,StringBuffer長度可變

3.形式參數問題
String作爲參數傳遞
StringBuffer作爲參數傳遞

String作爲參數傳遞,效果和基本類型傳遞一樣,形參不影響實參
StringBuffer如果調用append等方法會改變,但=不會改變。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章