Java字串連線

2019-10-16 22:23:47

java字串連線很常見。作為一名Java開發人員,幾乎每隔一段時間就會編寫用於字串連線的程式碼。

Java中的字串連線

相信你可能聽說不應該在java中使用字串+運算子來進行字串連線。應該使用StringBufferStringBuilder類來實現連線操作。這是一個非常常見的java面試問題。

如果深入挖掘,你可能知道String內部使用StringBuffer(直到Java 1.4)或StringBuilder(Java 1.5以後)進行字串+操作符呼叫。

下面編寫一個簡單的String連線java程式來證明這一點。

import java.util.Arrays;

public class StringToCharArray {

    public static void main(String args[]) {
        String str = new String("Yiibai");
        str += "kaops!!";
    }
}

現在將編輯上面的程式以使用StringBuffer

public class StringConcatenationExample {

    public static void main(String args[]){
         StringBuffer str = new StringBuffer ("Yiibai");
         str.append("kaops!!");
    }

}

使用 + 運算子字串連線的解釋

以下是使用+運算子進行字串連線所涉及的步驟:

  • 建立一個新的StringBuilder物件;
  • 將字串"Yiibai"複製到新建立的StringBuilder物件;
  • 呼叫StringBuilder append()方法將kaops!!附加到物件;
  • 呼叫StringBuilder toString()方法來獲取String物件;
  • 新的String物件參照分配給str,舊的字串"Yiibai"可用於垃圾回收。

使用append字串連線的解釋

如果使用StringBufferStringBuilder物件,則按以下步驟完成:

  • 建立一個新的StringBuffer物件,值為"Yiibai"
  • 呼叫append()方法將"kaops!!"附加到物件;
  • 呼叫StringBuffer toString()方法來獲取String物件;

顯然,第二種方式是耗時更少,使用更少的資源並產生更少的垃圾收集。