1、产生的原因:StringBuilder 是一个可变的字符序列。此类提供一个与 StringBuffer
兼容的 API,但不保证同步(所说的线程不安全)。该类被设计用作 StringBuffer
的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer
要快,因为在单线程状态,不会像StringBuffer那样消耗更多资源,这点是很明显的。
2、StringBuilder中常用的两个方法append和insert.
在 StringBuilder
上的主要操作是 append
和 insert
方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串生成器中。append
方法始终将这些字符添加到生成器的末端;而 insert
方法则在指定的点添加字符。
例如,如果 z
引用一个当前内容为“start
”的字符串生成器对象,则该方法调用 z.append("le")
将使字符串生成器包含“startle
”,而 z.insert(4, "le")
将更改字符串生成器,使之包含“starlet
”。
通常,如果 sb 引用 StringBuilder
的实例,则 sb.append(x)
和 sb.insert(sb.length(), x)
具有相同的效果。 每个字符串生成器都有一定的容量。只要字符串生成器所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区。如果内部缓冲区溢出,则此容量自动增大。
3、这里也谈下,StringBuilder.toString()后为转变为String对象,这种方式在项目常常使用。如果要经常改变一个串的内容的时候,尽量使用StringBuilder的append或insert方法来构造串,因为String是final类,每次串的“修改”都会新生成个String对象,这样造成一更多资源的开销。
PS:以上内容大部来自于JDK中,由笔者整理。呵呵,今天下午利用上班时间整理的,但中间项目临时会议和晚上的日语培训,现在才写完,好了,希望大家加油,毕竟现在竞争越来越大啊。
2011-1-18 卓
分享到:
相关推荐
在Java编程语言中,`java.lang.String`是最重要的类之一,它是所有字符串操作的基础。这个类位于核心类库中,因此无需显式导入即可使用。本文将深入探讨`String`类的一些关键知识点,包括它的特性、构造方法、常用...
Apache Commons Lang 是一个Java工具包,它提供了对Java语言核心类库的扩展,以支持一些高级功能和实用方法。这个`org.apache.commons.lang.jar`文件是该库的一个版本,包含了Lang项目的所有包,使得开发者在处理...
Apache Commons Lang 是一个由 Apache 软件基金会开发的 Java 类库,它提供了一系列实用工具类,用于增强 JDK 内置的 String 类的功能。在给定的标题 "org.apache.commons.lang3.StringUtils.jar.rar" 中,我们可以...
在Java编程语言中,`java.lang.OutOfMemoryError: Java heap space` 是一个常见的错误,它发生在程序运行过程中,由于Java虚拟机(JVM)的堆内存不足,无法分配新的对象时抛出。堆内存是Java应用程序中用来存储对象...
首先,`java.net.URL`类的构造器接受一个字符串参数,这个字符串是资源的完整URL地址。例如: ```java URL url = new URL("http://example.com/data.json"); ``` 创建URL对象后,我们可以调用`openConnection()`方法...
BufferedReader BufferedWriter FileReader FileWirter String Integer java.util.Date System Class(反射的核心类) 实现集合接口类HashMap ArrayList LinkedList HashSet java.lang.String StringBuilder 日期时间...
`StringBuilder`类位于`java.lang`包中,它继承自`AbstractStringBuilder`,并实现了`Appendable`和`CharSequence`接口。这个类提供了各种方法来添加、插入、删除和替换字符串中的字符,使得字符串操作更为便捷。 1...
- `java.lang.StringBuilder` 和 `java.lang.StringBuffer`:用于高效构建字符串,线程安全的分别是`StringBuffer`。 - `java.lang.String`:Java中的不可变字符串类,包含大量字符串操作方法。 5. **异常处理...
- java.lang.StringBuilder#append(),字符串构建器。 - javax.swing.GroupLayout.Group#addComponent(),添加组件到分组。 c) 工厂方法模式(FactoryMethod) 工厂方法模式定义了一个创建对象的接口,但由子类...
Java中的StringBuilder是一个非常重要的类,它位于java.lang包中,被广泛应用于字符串操作中。StringBuilder的主要作用是提供一个可变的字符序列,用以替代不可变的String,以提高性能和效率。当需要频繁修改字符串...
- `java.lang.StringBuilder#append()`: 字符串构建。 - `java.lang.StringBuffer#append()`: 字符串构建。 - `java.sql.PreparedStatement`: 预编译SQL语句。 - `javax.swing.GroupLayout.Group#addComponent()`: ...
3. **字符串处理:** `java.lang.StringBuilder` 和 `java.lang.StringBuffer` 提供了在字符串上进行拼接和修改的高效方法,尤其在多线程环境下,`StringBuffer` 是线程安全的选择。`java.util.regex` 包提供了正则...
4. **字符串处理**:`java.lang.String`和`java.lang.StringBuilder/StringBuffer`是处理文本数据的关键类。 5. **日期时间**:`java.time`包在Java 8引入,提供了更强大、更易用的时间日期处理功能。 6. **反射机制...
, java.io.InputStream, java.nio.ByteBuffer, java.io.ByteArrayOutputStream)TXT (java.lang.String, char[], java.nio.CharBuffer, java.lang.StringBuffer, java.lang.StringBuilder)支持的数据源:...
- `java.lang.StringBuilder` 和 `java.lang.StringBuffer` 用于高效构建字符串,特别是多线程环境。 - `java.util.regex.Pattern` 和 `java.util.regex.Matcher` 支持正则表达式匹配和操作。 6. **网络工具类**...
【Java初级教程】Java语言程序设计的第7章主要探讨了Java中的一些常用类,包括`java.lang.String`、`java.lang.StringBuilder`和`java.util.StringTokenizer`。以下是对这些类的详细解释: 1. **`java.lang.String`...
- `java.lang.StringBuilder#append()`:用于构建字符串。 - `java.lang.StringBuffer#append()`:线程安全的字符串构建器。 - `java.nio.ByteBuffer#put()`:以及其他缓冲区类如`CharBuffer`、`ShortBuffer`等,...
`StringBuilder`是Java中的一个类,它位于`java.lang`包下,主要负责动态构建和修改字符串。与`String`不同,`String`对象是不可变的,这意味着每次对`String`进行修改时,都会创建一个新的`String`对象,这在处理...
- `java.lang.StringBuilder` 和 `java.lang.StringBuffer`:可变的字符串对象,用于构建和修改字符串,`StringBuffer`在多线程环境下更安全。 3. **集合框架**: - `java.util.ArrayList`, `java.util....
这两个类位于`java.lang`包下,因此在使用时无需显式导入。本篇文章将深入探讨这两个类的特性和用途,以及在实际开发中的应用场景。 1. `StringBuffer` 和 `StringBuilder` 的共同点: - 都是线程安全的:`...