Java字符串连接

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("zaixian");
        str += "kaops!!";
    }
}

现在将编辑上面的程序以使用StringBuffer

public class StringConcatenationExample {

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

}

使用 + 运算符字符串连接的解释

以下是使用+运算符进行字符串连接所涉及的步骤:

  • 创建一个新的StringBuilder对象;
  • 将字符串"zaixian"复制到新创建的StringBuilder对象;
  • 调用StringBuilder append()方法将kaops!!附加到对象;
  • 调用StringBuilder toString()方法来获取String对象;
  • 新的String对象引用分配给str,旧的字符串"zaixian"可用于垃圾回收。

使用append字符串连接的解释

如果使用StringBufferStringBuilder对象,则按以下步骤完成:

  • 创建一个新的StringBuffer对象,值为"zaixian"
  • 调用append()方法将"kaops!!"附加到对象;
  • 调用StringBuffer toString()方法来获取String对象;

显然,第二种方式是耗时更少,使用更少的资源并产生更少的垃圾收集。


上一篇: java中方法重载和方法重写的区别 下一篇:无