天天看點

Java 的String 和StringBuffer的差別

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

Java 的String 和StringBuffer的差別
public class Text{
	
	public static void main(String[] args) {
		String s = new String("123");
		System.out.println(s.contains("2"));
	}
           

輸出:true