`
T240178168
  • 浏览: 369233 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

stringbuffer 的缓冲长度

    博客分类:
  • java
阅读更多

  StringBuffer缓冲长度,或者叫容量会随着内部储存的字符串长度而翻倍增大。
  比如用了49个字符,容量为50,再加入2个字符时,容量会从50变成100,此时字符串长度为51
  初始容量默认为16,也可以自定义更搜索小或更大

2
   stringbuffer 的方法声明都有 synchronized 关键字, 所以 stringbuffer 是线程安全的。

另外看看两个类的方法体都只是在调用父类的对应的方法。所以两个类除了线程安全性不同。其他操作基本一样。



深入 AbstractStringBuilder 类,发现

默认构建长度为16的数组,

每次的增长公式为:(length + 1) * 2 即原长度的2倍,

每次只有当长度不够的时候才会扩展,不会提前扩展。

大量使用 System.arraycopy 函数实现拷贝的功能
分享到:
评论

相关推荐

    Java中StringBuffer对象的初始化.pdf

    ` 这将创建一个包含指定字符串的`StringBuffer`对象,初始容量是该字符串的长度加16。 **2. 添加内容** `StringBuffer`提供了多种方法来添加内容,如`append()`方法: ```java StringBuffer sb = new ...

    String与StringBuffer区别详解

    它是一个辅助类,可以预先分配指定长度的内存块来建立一个字符串缓冲区。在StringBuffer对象创建后,你可以使用append方法多次追加字符,而不需要每次操作都重新分配内存。这在频繁修改字符串内容的场景下,尤其有用...

    JAVA_StringBuffer

    6. **length()**和`capacity()`:`length()`返回缓冲区当前的字符串长度,`capacity()`则返回当前的容量,即能容纳的最大字符数。如果需要增加容量,可以调用`ensureCapacity()`。 7. **toString()**:当操作完成并...

    StringBuffer总结

    `StringBuffer`可以被视为一个字符串容器,这意味着它可以存储和操作可变长度的字符序列。当需要对字符串进行多次修改时(例如插入、删除或替换字符),使用`StringBuffer`比使用`String`类更有效率,因为这些操作...

    ch4.rar_stringbuffer

    5. **length()和capacity()方法**:`length()`返回当前字符串的长度,而`capacity()`则返回缓冲区的总容量。如果需要增加容量,可以使用`ensureCapacity()`方法。 6. **toString()方法**:将`StringBuffer`转换为`...

    Java中StringBuffer类.pdf

    2. `public StringBuffer(int length)` - 根据指定的长度`length`创建一个`StringBuffer`对象,长度包括额外的缓冲区,如果`length`小于0,则抛出`NegativeArraySizeException`。 3. `public StringBuffer(String ...

    day13_StringBuffer_java_

    5. `length()`:返回字符串缓冲区的长度。 6. `toString()`:将字符串缓冲区转换为字符串。 在多线程环境下,`StringBuffer`相比`StringBuilder`(自Java 5引入)具有一个显著优势:`StringBuffer`的所有方法都是...

    StringBuffer基本数据类型的封装)总结共11页

    5. `length()`:返回当前字符串缓冲区的长度。 6. `toString()`:将`StringBuffer`的内容转换成`String`对象。 针对基本数据类型的封装,Java自动将这些类型转换为对应的字符串形式。例如,当你调用`append(int i)`...

    Java中StringBuffer的常用方法.pdf

    这个方法用于调整StringBuffer对象的容量以匹配其实际长度。当不再需要额外的容量时,可以调用此方法来节省内存。例如: ```java StringBuffer sb = new StringBuffer("Hello, World!"); sb.trimToSize(); ``` ...

    JAVA中String类与StringBuffer类的区别

    当字符串长度超出当前容量,它会自动扩展缓冲区,以适应增长的需求。 - **方法操作**:StringBuffer提供了一系列方法,如`append()`用于在字符串末尾添加内容,`insert()`用于在指定位置插入内容,以及`delete()`、...

    Java StringBuffer类与StringBuilder类用法实例小结

    3. `public StringBuffer(String str)`: 通过指定的字符串创建`StringBuffer`对象,初始容量为字符串长度加上16。 `StringBuffer`的方法主要包括: - `public int capacity()`: 返回当前容量,即内部字符数组的...

    显示 codePointAt() 方法用法的 Java 程序.docx

    在Java编程语言中,`codePointAt()`方法是`StringBuffer`类的一个重要成员,用于获取字符串缓冲区中特定位置的字符的Unicode编码。这个方法对于处理包含Unicode字符的字符串尤其有用,因为Unicode编码可以表示世界上...

    Java_计算器

    - **获取长度和容量**:`length()`方法返回当前字符串的实际长度,而`capacity()`方法返回缓冲区的容量。 - **访问字符**:`charAt(int index)`方法可以用来获取指定索引位置的字符。 #### 三、实验示例代码分析 #...

    java生成随机密码

    字符串缓冲区 - `StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyz");` - **初始化**:这里创建了一个`StringBuffer`对象,用于存储可能出现在随机密码中的字符集合。这包括数字(0...

    Java字符串使用总结.docx

    `StringBuffer`类提供了线程安全的、可变的字符串缓冲区。与`String`不同,`StringBuffer`对象是可以被修改的。 ##### 线程安全性 `StringBuffer`的所有操作都是同步的,这意味着它可以安全地用于多线程环境中。当...

    **Java字符串的方法

    `StringBuffer` 类提供了一个可变的字符串缓冲区,可以在运行时修改字符串的内容而不创建新的对象。 **构造方法**: - `StringBuffer()`: 创建一个空的字符串缓冲区。 - `StringBuffer(int size)`: 创建一个具有指定...

    Math与strbuffer.rar

    **字符串缓冲区(StringBuffer)** 在处理大量字符串操作时,使用StringBuilder或StringBuffer类通常比直接使用字符串连接更有效率。这是因为字符串在Java中是不可变的,每次修改都会创建新的字符串对象,这可能导致...

    实验一 Java常用工具类编程.doc

    - **构造方法**:`StringBuffer`提供了无参构造、指定长度构造和带字符串参数的构造,用于创建一个可变的字符串缓冲区。 - **成员方法**: - `length()`返回字符串缓冲区的字符数。 - `capacity()`返回当前容量...

    计算机二级考试Java练习题及答案三.pdf

    - 构造方法`StringBuffer(String str)`初始化时会根据给定字符串的长度加上16个额外字符容量作为缓冲区大小。 - `length()`方法返回字符串的实际长度,不包括未使用的缓冲区。 3. **对象输入输出流** - `...

Global site tag (gtag.js) - Google Analytics