`
我家树苗三岁半
  • 浏览: 4562 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

StirngBuffer与StringBuilder的区别

    博客分类:
  • java
阅读更多
java.lang.StringBuffer

StringBuffer是线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。

可将字符串缓冲区安全地用于多个线程,可以再必要时对这些方法进行同步,因此任意特定实例上的所有操作就像是以串行顺序发生的,该顺序它所涉及的每个线程进行的方法调用顺序一致。

StringBuffer上的主要操作时append和insert方法,可以重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append方法始终将这些字符添加到缓冲区的末端;而insert方法则在指定的点添加字符串。

例如,如果Z饮用一个当前内容是“start”的字符串缓冲区对象,则此方法调用z.append("le")会使字符串缓冲区包含“startle”,而z.insert(4,"le")将更改字符串缓冲区,使包含“starlet”。

只要发生有关序列(如在源序列中追加或插入)的操作,该类就只在执行此操作的字符创缓冲区上而不是在源上实现同步。

每个字符串缓冲区都有一定的容量。只要字符缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从JDK5开始,为该类补充了一个单个线程类,即StringBuilder.于该类相比,通常优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。

java.lang.StringBuilder一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

StringBuilde的实例用于多个线程是不安全的,如果需要这样同步,则建议使用StringBuffer.
分享到:
评论

相关推荐

    String StringBuffer和StringBuilder区别之源码解析

    "String StringBuffer和StringBuilder区别之源码解析" 在Java中,字符串是我们经常使用的数据类型,而String、StringBuffer和StringBuilder是Java中三种常用的字符串类。在这篇文章中,我们将从源码角度对String、...

    String、StringBuffer与StringBuilder之间区别

    String:字符串常量  StringBuffer:字符创... StringBuilder:字符创变量  从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:

    String和StringBuilder类的区别

    - **StringBuilder**:与之不同的是,`StringBuilder` 类是可变的(mutable)。这意味着可以对 `StringBuilder` 对象进行多次修改(如添加、删除或替换字符),而不会创建新的对象。这使得 `StringBuilder` 在需要...

    Java中String,StringBuffer与StringBuilder的区别

    Java 中 String, StringBuffer 与 StringBuilder 的区别 Java 中 String, StringBuffer 与 StringBuilder 三种字符串类型的区别是很多开发者经常混淆或不了解的知识点。今天,我们将深入探讨这三种字符串类型的区别...

    String、StringBuilder和StringBuffer的区别

    在Java编程语言中,String、StringBuilder和StringBuffer都是用来处理字符串的类,它们之间存在一些重要的区别,主要涉及到性能和线程安全性。 首先,`String`类代表的是字符串常量,一旦创建,其内容就不能改变。...

    String ,StringBuffer与StringBuilder

    String, StringBuffer 与 StringBuilder 的区别 在 Java 中,String, StringBuffer 和 StringBuilder 三个类都是用于字符操作的,但它们之间有着很大的区别。 首先,String 是不可变类,意味着一旦创建了 String ...

    C#中StringBuilder类的使用方法

    C#中StringBuilder类的使用方法 C#中的StringBuilder类是 System.Text 命名空间下的一个类,用于高效地处理和操作字符串。StringBuilder类的出现是为了解决String类的不可变性问题,每次使用String类中的方法时,都...

    StringBuilder的用法

    在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。 StringBuilder 的优点有: * 高效:...

    String及StringBuffer和StringBuilder的区别

    StringBuilder 类型是可变的对象,提供了与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。StringBuilder 在大多数实现中比 ...

    stringBuilder完整版.pdf

    此值称为该对象的容量,不应将它与当前 StringBuilder 对象容纳的字符串长度混淆在一起。例如,可以创建 StringBuilder 类的带有字符串“Hello”(长度为 5)的一个新实例,同时可以指定该对象的最大容量为 25。当...

    07 StringBuilder

    与`String`不同,`StringBuilder`对象是可变的,这意味着可以在不创建新对象的情况下修改它们。此外,与线程安全的`StringBuffer`相比,`StringBuilder`在单线程环境中提供了更好的性能。 #### 一、StringBuilder...

    java中stringBuilder的用法.pdf

    与String相比,StringBuilder的主要优势在于它在频繁修改字符串时的性能优势。当使用String拼接时,每次拼接都会创建一个新的String对象,而StringBuilder则会直接在原有的字符序列上进行修改,从而减少了对象创建和...

    你知道String、StringBuffer和StringBuilder的区别吗

    在Java编程语言中,String、StringBuffer和StringBuilder都是用来处理字符串的重要类,它们各自具有不同的特性和使用场景。下面将详细解析这三个类的区别。 首先,`String`类是最基础的字符串处理类,它被设计为不...

    C#源代码-使用StringBuilder来拼接HTML中的Table表格.zip

    1. **初始化StringBuilder对象**:首先,我们需要创建一个StringBuilder实例,指定初始容量以减少后续的容量调整。 ```csharp StringBuilder htmlBuilder = new StringBuilder(capacity); ``` 2. **添加HTML头部**...

    String、StringBuffer、StringBuilder的使用方法

    在Java编程语言中,`String`、`...理解`String`、`StringBuffer`和`StringBuilder`的区别和使用场合,可以帮助开发者写出更高效、更安全的代码。在实际开发中,应根据项目需求和环境选择合适的字符串处理类。

    PrintStream,StringBuilder,Formatter

    在Java编程语言中,`PrintStream`, `StringBuilder` 和 `Formatter` 是三个非常重要的类,分别用于不同的输出处理。理解并熟练使用这三个类是提升Java编程能力的关键。 首先,我们来详细了解一下`PrintStream`。它...

    StringBuilder字符串拼接工具

    在Java编程语言中,`StringBuilder`是一个非常重要的类,它被广泛用于字符串的构建和拼接操作。在处理大量字符串连接时,相比直接使用`+`运算符或`String`对象,`StringBuilder`能提供更高的性能。这是因为每次使用`...

    StringBuilder类

    与String不同,String对象的长度是固定的,一旦创建,其内容无法改变,每次对字符串进行修改都会生成新的对象,这在处理大量字符串拼接时会显著降低程序效率。而StringBuilder则提供了可变字符串的功能,它允许我们...

Global site tag (gtag.js) - Google Analytics