博客压压惊。"/>
对StringBuffer有点模糊了?来篇博客压压惊。
讲StringBuffer之前先来说一下String。
-
String
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。
String s = "Google";
System.out.println("s = " + s);s = "Runoob";
System.out.println("s = " + s);输出结果为:
Google
Runoob
到这里你可能会有疑问。从结果上看是改变了,但为什么说String对象是不可变的呢?
原因在于实例中的 s 只是一个 String 对象的引用,并不是对象本身,当执行 s = “Runoob”; 创建了一个新的对象 “Runoob”,而原来的 “Google” 还存在于内存中。
所以,String类中的内容一旦声明之后不可改变,改变的只是其内存地址的指向
直接上图(图侵删)
好,那么回到我们的StringBuffer。如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
-
StringBuffer
特性:StringBuffer是线程安全的
在基本情况下选择使用 stringbuiler,除非你真的遇到了一个需要线程安全的场景。
-
StringBuilder
历史:StringBuilder 类在 Java 5 中被提出。(4之前使用会报错)
特性:StringBuilder它是非线程安全的。(这是它与StringBuffer最本质的区别)
StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类
待续…
更多推荐
对StringBuffer有点模糊了?来篇博客压压惊。
发布评论