`
12616383
  • 浏览: 51455 次
  • 性别: Icon_minigender_1
  • 来自: 待定
社区版块
存档分类
最新评论

java--core 之 StringBuffer 和 StringBuilder 区别

阅读更多

java.lang.StringBuffer

 

java.lang.StringBuilder

 

下面的源代码可以看出两个都是继承了AbstractStringBuilder 这个类,不同的是一个线程安全的,一个不是线程安全的

 

源代码:

StringBuffer

 public final class StringBuffer
    extends AbstractStringBuilder
    implements java.io.Serializable, CharSequence
{
    public synchronized StringBuffer append(String str) {
	super.append(str);
        return this;
    }
}

 

StringBuilder

public final class StringBuilder
    extends AbstractStringBuilder
    implements java.io.Serializable, CharSequence
{
    public StringBuilder append(String str) {
	super.append(str);
        return this;
    }

}

 

         StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。 当发生与源序列有关的操作(如源序列中的追加或插入操作)时,该类只在执行此操作的字符串缓冲区上而不是在源上实现同步。 每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。

分享到:
评论

相关推荐

    corejava--基础教程

    理解字符串池和StringBuilder/StringBuffer的使用场景。 9. **输入/输出流**:Java的IO流系统是处理数据输入和输出的关键,包括文件操作和网络通信。掌握InputStream和OutputStream基类,以及Reader和Writer的文本...

    javaSE-java-core.pdf

    `StringBuilder`和`StringBuffer`都是用来构建和修改字符串的类,区别在于`StringBuffer`是线程安全的,适合多线程环境,而`StringBuilder`则在单线程环境中效率更高。 `Date`类用于表示时间,`SimpleDateFormat`...

    javaSE-java-core.docx

    4. Apache Commons Lang:这是一个开源库,提供了对Java标准库`java.lang`的扩展,包括对字符串操作的增强,如`StringBuilder`和`StringBuffer`。`StringBuilder`适用于非线程安全的字符串操作,而`StringBuffer`则...

    Core Java(Volume-Iⅈ--Fundamentals 9th Edition).rar

    6. **字符串处理**:介绍String类的特性和常用方法,以及StringBuilder和StringBuffer的使用。 7. **输入/输出流**:讲解I/O流的概念,包括文件操作和基本的网络I/O。 8. **泛型**:介绍泛型的概念,如何在类、...

    javacore测试题及参考答案

    StringBuffer 和 StringBuilder 提供了可变字符串,适合在多线程或频繁修改字符串时使用。StringBuilder 是非线程安全的,而 StringBuffer 在多线程环境中更安全,但在单线程环境下,StringBuilder 效率更高。 4. *...

    java_exam

    5. **字符串处理**:String类的常用方法,如concat、substring、indexOf、replace等,以及StringBuilder和StringBuffer的使用。 6. **IO流**:学习文件读写、字节流和字符流,以及缓冲流的使用。 7. **多线程**:...

    重点知识锦集CoreJava

    【Java核心知识锦集】 ...以上是CoreJava的一些关键知识点,对于初学者来说,理解和掌握这些基础内容是成为Java开发者的必要步骤。通过深入学习和实践,可以进一步提高编程技能,为更复杂的系统开发打下坚实基础。

    java面试题 包含 corejava javabean web

    2. **String、StringBuffer与StringBuilder的区别** (CoreJava) - **String**: 是不可变的对象,一旦创建就不能改变其内容。适用于那些创建后不再变化的字符串。 - **StringBuffer**: 可变的字符串对象,允许在...

    Core java I

    - **String类**:Java的String类是不可变的,学习如何创建、比较和操作字符串,以及使用StringBuffer或StringBuilder进行字符串拼接。 5. **异常处理**: - **异常体系**:Java中的异常是程序运行时错误的表示,...

    corejava JAVA核心编程 里的源代码

    5. **字符串处理**:String类在Java中扮演着重要角色,学习其不可变性、常用方法以及StringBuilder和StringBuffer的使用是必要的。 接下来,进阶话题: 6. **集合框架**:List、Set和Map接口以及ArrayList、...

    core-java-code-challenges-Yedesdes:GitHub Classroom创建的core-java-code-challenges-Yedesdes

    阿姆斯壮数字是一个数字,该数字是其自己的数字之和,每个数字均提高为数字的幂。 计算给定自然数的素数。 创建旋转密码的实现,有时也称为凯撒密码。 给定数字n,确定第n个素数。 创建atbash密码的实现,...

    core-java-code-challenges-helppaw:GitHub Classroom创建的core-java-code-challenges-helppaw

    阿姆斯壮数字是一个数字,该数字是其自己的数字之和,每个数字均提高为数字的幂。 计算给定自然数的素数。 创建旋转密码的实现,有时也称为凯撒密码。 给定数字n,确定第n个素数。 创建atbash密码的实现,...

    Core Java Volume I

    5. **字符串处理**:讨论了String类的特性,如不可变性,以及如何使用StringBuilder和StringBuffer进行字符串拼接和修改。 6. **输入/输出流**:讲解了I/O流的概念,包括文件读写、字符流和字节流,以及缓冲区和...

    Core Java (vol 1&2)

    8. **字符串处理**:介绍String类的常用方法,字符串池的概念,以及StringBuilder和StringBuffer的区别。 9. **集合框架**:包括List、Set、Map接口以及ArrayList、LinkedList、HashSet、HashMap等实现类的使用。 ...

    core-java-code-challenges-iloba007:GitHub Classroom创建的core-java-code-challenges-iloba007

    阿姆斯壮数字是一个数字,该数字是其自己的数字之和,每个数字均提高为数字的幂。 计算给定自然数的素数。 创建旋转密码的实现,有时也称为凯撒密码。 给定数字n,确定第n个素数。 创建atbash密码的实现,...

    core-java-assignment-FernandoHudson95:GitHub Classroom创建的core-java-assignment-FernandoHudson95

    阿姆斯壮数字是一个数字,该数字是其自己的数字之和,每个数字均提高为数字的幂。 计算给定自然数的素数。 创建旋转密码的实现,有时也称为凯撒密码。 给定数字n,确定第n个素数。 创建atbash密码的实现,...

    Core Java Vol I 8th

    《Core Java Vol I 8th》是Java编程领域的一本经典教材,主要针对初学者和有一定基础的开发者,深入浅出地介绍了Java编程的核心概念和技术。这本书由Cay S. Horstmann和Gary Cornell合著,是Java学习者的重要参考...

    core java 2 volume i

    6. **字符串处理**:Java中的String类是不可变的,书中会介绍字符串的创建、比较、操作方法,以及StringBuilder和StringBuffer的使用。 7. **泛型**:自Java 5引入的泛型可以增强类型安全,减少在代码中进行类型...

    CoreJava

    《CoreJava》是一套经典的Java编程教程,分为Volume I 和 Volume II两卷,全面而深入地介绍了Java语言的核心概念和技术。这套教程以英文原版的形式呈现,为学习者提供了权威的Java开发知识。 Volume I主要关注Java...

Global site tag (gtag.js) - Google Analytics