String、StringBuffer、StringBuilder的区别

  String、StringBuffer、StringBuilder都是表示字符串的,而他们的最明显区别是String在做相应的字符串拼接、更改时String会把原有的回收,而重新创建一个新的字符串;StringBuffer和StringBuilder则不会,它们直接在原有字符串上进行更改。

比如:

String a = “I am a String”;
String b = a+”add b”;

  在这里b为”I am a String add b”,在创建b的过程中,a被回收,而创建一个新的字符串b。

StringBuffer buffer = new StringBuffer(“I am a StringBuffer”);
buffer.append(“add new String”);

  在这里buffer变为 “I am a StringBuffer add new String”。并且自始至终都是一个buffer,并没有创建新的StringBuffer。

StringBuffer和StringBuilder是同一类的,它俩之间的区别在于StringBuilder是线程不安全的,而StringBuffer是线程安全的。

StringBuffer和StringBuilder的构造方法如下:

原文地址:https://www.cnblogs.com/hamihua/p/6999312.html