Java基礎-----String、StringBuffer和StringBuilder類
阿新 • • 發佈:2018-12-08
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"; } }
執行結果如下: