StringBuffer和String的區別?
前者長度和內容可變,后者不可變。
如果使用前者做字符串的拼接,不會浪費太多的資源。
StringBuffer的構造方法:
public StringBuffer():無參構造方法
public StringBuffer(int capacity):指定容量的字符串緩沖區對象
public StringBuffer(String str):指定字符串內容的字符串緩沖區對象
默認容量為16
添加功能:
public StringBuffer append(String str):追加
public StringBuffer insert(int offset,String str):指定位置插入字符串
刪除功能:
public StringBuffer deleteCharAt(int index):刪除指定位置的字符,並返回本身
public StringBuffer delete(int start,int end):刪除從指定位置開始指定位置結束的內容,並返回本身
替換功能:
public StringBuffer replace(int start,int end,String str):從start開始到end用str替換
反轉功能:
public StringBuffer reverse()
截取功能:
注意返回值類型不再是StringBuffer本身了
public String substring(int start)
public String substring(int start,int end)
String -轉化為-StringBuffer
String s = "hello";
// 注意:不能把字符串的值直接賦值給StringBuffer
// StringBuffer sb = "hello";
// StringBuffer sb = s;
// 方式1:通過構造方法
StringBuffer sb = new StringBuffer(s);
// 方式2:通過append()方法
StringBuffer sb2 = new StringBuffer();
sb2.append(s);
StringBuffer -轉化為- String
StringBuffer buffer = new StringBuffer("java");
// String(StringBuffer buffer)
// 方式1:通過構造方法
String str = new String(buffer);
// 方式2:通過toString()方法
String str2 = buffer.toString();
1:String,StringBuffer,StringBuilder的區別?
A:String是內容不可變的,而StringBuffer,StringBuilder都是內容可變的。
B:StringBuffer是同步的,數據安全,效率低;StringBuilder是不同步的,數據不安全,效率高
2:StringBuffer和數組的區別?
二者都可以看出是一個容器,裝其他的數據。
但是呢,StringBuffer的數據最終是一個字符串數據。
而數組可以放置多種數據,但必須是同一種數據類型的。
3:形式參數:
基本類型:形式參數的改變不影響實際參數
引用類型:形式參數的改變直接影響實際參數
*注意:
String作為參數傳遞,效果和基本類型作為參數傳遞是一樣的。