Java 的String 和StringBuffer的差別
在java中有3個類來負責字元的操作。
1.Character 是進行單個字元操作的,
2.String 對一串字元進行操作。不可變類。
3.StringBuffer 也是對一串字元進行操作,但是可變類。
String:
是對象不是原始類型.
為不可變對象,一旦被建立,就不能修改它的值.
對于已經存在的String對象的修改都是重新建立一個新的對象,然後把新的值儲存進去.
String 是final類,即不能被繼承
例程:
String s = "Hello ";
s.concat("World!"); //字元串連接配接
System.out.println(s); //輸出s,還是"Hello "
s = s.concat("World!"); //把字元串對象連接配接的結果賦給了s引用
System.out.println(s); //輸出s,變成了"Hello World!"
StringBuffer:
StringBuffer sb = new StringBuffer();
note:不能通過指派符号對他進行付值.
sb = "welcome to here!";//error
指派的時候可以通過它的append方法.
sb.append("hello");
Note:StringBuffer 的位址不可更改,長度和内容可改。append()方法是追加,超過預留記憶體時,記憶體翻倍。
效率比較:StringBuffer比String高。因為StringBuffer有預留的空間可以一直追加、修改字元串,但是String每次修改的時候都需要重新建立一個對象。
但是String()有contain()方法(判斷字元是否在字元串中) StringBuffer可以調用toString()方法來轉換成String
public class Text{
public static void main(String[] args) {
String s = new String("123");
System.out.println(s.contains("2"));
}
輸出:true