上一篇立下flag,说是这一篇给大家详解StringBuilder和StringBuffer,但其实真的没什么内容可讲,不过也要说到做到。
为什么需要StringBuilder和StringBuffer
上一篇跟大家介绍了String的用法,String是很强大的API类,包装很多的方法,而相比来言,StringBuilder和StringBuffer并没有太大的进步。但是我们提到过,String是final修饰的类,对象一旦被创建,它的值就不能被改变。如果你硬要改变它的值,其实际上是改变了该变量指向的地址。这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。
StringBuilder和StringBuffer是为了修改字符串内容的出现的类。
StringBuilder
该类定义了编辑字符串的相关方法:增,删,改,插
(1)增
String str = “好好学习java”;
StringBuilder builder = new StringBuilder(str); //String转化为StringBuilder
str = builder.toString(); //StringBuilder转化为String
/*
* 向当前字符串末尾追加指定内容.append(str);
*/
builder.append(",是为了找个好工作!");
System.out.println(builder.toString());
(2)builder.replace(start, end, str); //指定范围内的代码替换,str(end)不会被替换
(3)builder.delete(start, end); //指定范围内的字符串删除

(4)builder.insert(0, “活着”); //指定位置的字符串插入

(5)builder.reverse(); //首尾对调(倒着写)

StringBuffer
StringBuffer和StringBuilder的用法几乎是一样的
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。Stringbuilder是线程不安全的。
java菜鸟笔记:StringBuilder和StringBuffer
上图是三者的继承关系。

相关文章: