1. 程式人生 > >Java基礎-----String、StringBuffer和StringBuilder類

Java基礎-----String、StringBuffer和StringBuilder類

String、StringBuffer和StringBuilder類的區別

1、String是一個不可變的字元序列。
2、StringBuffer,StringBuilder是可變的字元序列。
3、StringBuffer和StringBuilder類的方法基本都是一樣的,不一樣的地方就是StringBuffer是執行緒安全的,StringBuilder是執行緒不安全的。
4、StringBuffer是jdk1.0版本的,執行緒安全效率低。
5、StringBuilder是jdk1.5版本的,是執行緒不安全的,效率高。

String和StringBuffer分別作為引數傳遞

基本資料型別的值傳遞,不改變其值,引用資料型別的值傳遞,改變其值。

注意
String類雖然是引用資料型別,但是當作引數傳遞時和基本資料型別是一樣的。

分析其原因:
String類是不可改變,其不可改變的本質就在於不能在記憶體中改變物件的屬性值,也就是說無論引用值如何改變,物件是不可變的。

package StringBufferPackage;

public class Test2 {
	public static void main(String[] args) {
		String s =  new String("java");
		System.out.println(s);
		change(s);
		System.out.println(s);
		
		
		System.out.println("--------------------------------");
		StringBuffer sb = new StringBuffer("Mysql");
		System.out.println(sb);
		change(sb);
		System.out.println(sb);
	}

	private static void change(StringBuffer sb) {
		sb.append("xiao");
		
	}

	private static void change(String s) {
		s += "xiao";
		
	}
}

執行結果如下:
在這裡插入圖片描述