StringBuffer
一、Stringbuff在jdk1.8中概述:
public final class StringBuffer
extends Object
implements Serializable, CharSequence
线程安全,可变的字符序列。 字符串缓冲区就像一个String ,但可以修改。 在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。
字符串缓冲区可以安全地被多个线程使用。 这些方法在必要时进行同步,以便任何特定实例上的所有操作都按照与所涉及的各个线程所执行的方法调用顺序一致的顺序发生。
StringBuffer的主要StringBuffer是append和insert方法,它们被重载以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串缓冲区。 append方法总是在缓冲区的末尾添加这些字符; insert方法将insert添加到指定点。
例如,如果z是指当前内容为\"start\"的字符串缓冲区对象,那么方法调用z.append(“le”)将使字符串缓冲区包含\"startle\" ,而z.insert(4, “le”)会将字符串缓冲区更改为包含\"starletle\" 。
一般情况下,如果某人是指的一个实例StringBuffer ,则sb.append(x)具有相同的效果sb.insert(sb.length(), x) 。
每当涉及源序列(例如从源序列追加或插入)的操作发生时,该类仅在执行操作的字符串缓冲器上进行同步,而不在源上。 请注意,虽然StringBuffer被设计为可以安全地从多个线程并发使用,但如果构造函数或append或insert操作被传递通过线程共享的源序列,则调用代码必须确保该操作具有一致且不变的视图在操作期间的源序列。 呼叫者通过使用不可变的源序列,或者不跨线程共享源序列,可以在呼叫期间持有锁来满足这一点。
每个字符串缓冲区都有一个容量。 只要字符串缓冲区中包含的字符序列的长度不超过容量,就不必分配新的内部缓冲区数组。 如果内部缓冲区溢出,则会自动变大。
二、Stringbuffer的构造方法
使用Stringbuffer(String str)的构造方法
Cpacity() = length + 初始容量
三、功能方法
Stringbuffer是字符串缓冲区,当new的时候是在堆内存创建了一个对象,底层是一个长度为16的字符数组,当调用添加方法的时,不会再重新创建对象,而是向原缓冲区中添加字符。
例子
打印的结果是:
因为这四个sb引用都是指向 一个对象
Char的包装类Character中pareseXXX的方法
字符串到字符的转换通过tocharArray()就可以把字符串转换为字符数组
Integer
v
True
True
False
True
详细解释看CSDN的java中常量池的博客,我有文章
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



