java字符串连接很常见。作为一名Java开发人员,几乎每隔一段时间就会编写用于字符串连接的代码。
Java中的字符串连接
相信你可能听说不应该在java中使用字符串+
运算符来进行字符串连接。应该使用StringBuffer
或StringBuilder
类来实现连接操作。这是一个非常常见的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("example"); str += "kaops!!"; } }
现在将编辑上面的程序以使用StringBuffer
。
public class StringConcatenationExample { public static void main(String args[]){ StringBuffer str = new StringBuffer ("example"); str.append("kaops!!"); } }
使用 + 运算符字符串连接的解释
以下是使用+
运算符进行字符串连接所涉及的步骤:
- 创建一个新的
StringBuilder
对象; - 将字符串
"example"
复制到新创建的StringBuilder
对象; - 调用StringBuilder
append()
方法将kaops!!
附加到对象; - 调用StringBuilder
toString()
方法来获取String
对象; - 新的
String
对象引用分配给str
,旧的字符串"example"
可用于垃圾回收。
使用append字符串连接的解释
如果使用StringBuffer
或StringBuilder
对象,则按以下步骤完成:
- 创建一个新的
StringBuffer
对象,值为"example"
; - 调用
append()
方法将"kaops!!"
附加到对象; - 调用StringBuffer
toString()
方法来获取String对象;
显然,第二种方式是耗时更少,使用更少的资源并产生更少的垃圾收集。