LearnJava(三)String、StringBuffer 与 StringBuilder

  我们知道,String对象是不可变的,而Java中String类提供了“+”进行字符串拼接操作,从JDK1.5开始,字符串的拼接操作是通过StringBuffer类来完成的。

String a = "str";
String b = "ing";
String c = a + b;

上述代码的实际实现过程是:

String c = new StringBuffer(a).append(b).toString();

  也就是说,在这个过程中实际创建了一个StringBuffer对象和一个String对象。因此,当对字符串进行修改的时候,使用 StringBuffer 和 StringBuilder 类,系统开销比较小。
  与 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

区别
  • String 不可变,而 StringBuffer 和 StringBuilder 是可变的。
  • StringBuffer 是线程安全的,内部使用 synchronized进行同步,而 StringBuilder 不是线程安全的。

根据这些主要区别:

  1. 进行字符串拼接操作时,使用StingBuffer 和 StringBuilder 可以节省系统开销。
  2. 在要求线程安全的情况下,应该使用 StringBuffer。
上一篇:CRP多语言编译/测试插件使用之基础环境


下一篇:LearnJava(一) 数据类型