AJPFX關於StringBuffer,StringBuilder類總結(二)

StringBuffer,StringBuilder類 總結2
須要注意的知識點:
1):
// String -- >StringBuffer
String s = "hello";
// 注意:不能把字符串的值直接賦值給StringBuffer
// StringBuffer sb = "hello";
// StringBuffer sb = s;
// 方式1:經過構造方法
StringBuffer sb = new StringBuffer(s);
// 方式2:經過append()方法java

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();面試

3)數組

  • StringBuffer和String的區別?
  • 前者長度和內容可變,後者不可變。
  • 若是使用前者作字符串的拼接,不會浪費太多的資源。

4) String和StringBuffer相互轉換
String -- StringBuffer
構造方法
StringBuffer -- String
toString()方法
5)安全

  • 面試題:
  • 1:String,StringBuffer,StringBuilder的區別?
  • A:String是內容不可變的,而StringBuffer,StringBuilder都是內容可變的。
  • B:StringBuffer是同步的,數據安全,效率低;StringBuilder是不一樣步的,數據不安全,效率高

6):StringBuffer和數組的區別?app

  • 兩者均可以看出是一個容器,裝其餘的數據。
  • 可是呢,StringBuffer的數據最終是一個字符串數據。
  • 而數組能夠放置多種數據,但必須是同一種數據類型的。
  • 7):形式參數問題ide

  • String做爲參數傳遞
  • StringBuffer做爲參數傳遞
  • 形式參數:
  • 基本類型:形式參數的改變不影響實際參數
  • 引用類型:形式參數的改變直接影響實際參數
  • 注意:
  • String做爲參數傳遞,效果和基本類型做爲參數傳遞是同樣的。
    */

public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
System.out.println(s1 + "---" + s2);// hello---world
change(s1, s2);
System.out.println(s1 + "---" + s2);// hello---worldui

StringBuffer sb1 = new StringBuffer("hello");
    StringBuffer sb2 = new StringBuffer("world");
    System.out.println(sb1 + "---" + sb2);// hello---world
    change(sb1, sb2);
    System.out.println(sb1 + "---" + sb2);// hello---worldworld

}

public static void change(StringBuffer sb1, StringBuffer sb2) {
   sb1 = sb2; 局部變量賦值本能改變實際參數
    sb2.append(sb1);
}

public static void change(String s1, String s2) {
    s1 = s2;
    s2 = s1 + s2;
}
相關文章
相關標籤/搜索