1. 程式人生 > >Java_56_57_StringBuilder與StringBuffer_StringBuider使用中共有幾個物件?_append_return.this(方法鏈)

Java_56_57_StringBuilder與StringBuffer_StringBuider使用中共有幾個物件?_append_return.this(方法鏈)

1.StringBuider可變字串,執行緒不太安全但效率高推薦使用

StringBuffer可變字串,執行緒安全但效率低,不推薦使用。

String是不可變字串,根據實時情況使用,在迴圈當中不要使用,因為會產生好多沒用的字串。

2.String,StringBuilder要學會檢視api的良好習慣,通過api學會使用常用的方法,自己利用案例來理解每個方法的具體含義。這樣你會更深刻理解每個方法的使用。

3.如果看不懂api可以看字串的擴容原理(Java_55_56)。方便理解後面容器的內容。

StringBuilder s1=new StringBuilder(); //StringBuilder 物件 s1 長度是0,StringBuilder內部構造器新建了一個長度16的char陣列。

append 原始碼

public StringBuilder append(String str) {
        super.append(str);
        return this; //通過return this實現方法鏈,返回當前物件
    }

-------------------------------------

4.StringBuilder|共有幾個物件?

StringBuildergh=new StringBuilder(”a”);

for(int i=0;i<1000;i++){

gh.append(i);

} //整個過程只有兩個物件"a"和new StringBuilder("a");

5.append實際使用的是替換陣列的方法;

append是char[]陣列,容器是Object[]陣列;

6.return this 方法連

連續操作類裡方法,每次返回類例項,用return this;

 

class Test2 {

String s="";

public static void main(String[] args) {

   Test2 t = new Test2();

   t.method("111");

   t.method("222");

   t.method("333");

   //等效與t.method("111").method("222").method("333");

   t.method2();

 

}

 

public Test2 method(String sb) {

   s+=sb;

   return this;

}

 

public void method2() {

   

   System.out.println(s);

}

} 結果: 111222333