java中StringBuffer和StringBuilder
StringBuffer
- StringBuffer是一个容器
- StringBuffer实现了Serializable,说明可以串行化
- 在父类中 AbstractStringBuilder 有属性 char[] value,不是 final,该 value 数组存放 字符串内容,引出存放在堆中的
String vs StringBuffer
- String:保存的是字符串常量,里面的值是不能修改的,每次String类的更新实际上就是更改地址,效率低
- String Buffer:保存的是字符串变量,里面的值可以修改,每次StringBuffer更新实际上是更新的内容,不用更新地址,效率高
-
String 和 StringBuffer 之间的转化
public class String_Buffer { public static void main(String[] args) { //String ---> String Buffer String转为StringBuffer String fun = "hello"; //方式一 使用构造器 StringBuilder stringBuilder = new StringBuilder(fun); //方式二 使用append StringBuilder stringBuilder1 = new StringBuilder(); stringBuilder1.append(fun); //String Buffer ---> String StringBuffer转为String StringBuilder pfc = new StringBuilder("平凡晨"); //方式一 toString()方法 String string = pfc.toString(); //方式二 使用构造器 String s = new String(pfc); System.out.println(s); } }