java-StringBuilder

易变的字符序列这个类提供了一个兼容的API使用 {@code StringBuffer},但不能保证同步。该类被设计为用于替换{@code StringBuffer} (一般情况下 一个单独的线程处理字符串缓冲区) 可能的话,建议优先使用此类。

{@code StringBuilder} 主要操作是append和insert 方法。他们重载以便于接受任何类型的数据。每个有效将给定的数据转换为字符串,然后追加或插入字符串到字符串生成器的字符。 {@code append}方法总是在结尾添加这些字符。{@code insert}
方法将字符添加到指定点

例如,如果{@代码Z}引用字符串生成器对象 当前的内容是“{@代码start }”
然后 方法调用 {@code z.append(“le”)} 会引起string builder 包含{@code startle}”,
然而, {@code z.insert(4, “le”)} 将会修改string builder 包含 {@code starlet}

总体来说 如果sb 引用了{@code StringBuilder},实例 {@code sb.append(x)} 有相同的影响和{@code sb.insert(sb.length(), x)}.

每个字符串生成器都具有容量。包含在字符串生成器的字符串序列的长度 不超过这个容量,没有必要不必分配新的内部缓冲器。如果内部缓冲区溢出,则自动生成较大的缓冲区。

{@code StringBuilder} 的实例 不是安全的 给多线程使用
如果需要这样的同步,那么它是建议使用 {@link java.lang.StringBuffer}

除非另有说明,将{@代码null }参数传递给构造函数,或该类中的方法将导致 {@link NullPointerException}

AbstractStringBuilder
易变的字符序列
实现一个可修改的字符串。在任何时间点都包含一些字符的特定序列,但长度和内容可以通过某些方法调用来改变序列。
除非另有说明,将{@代码null }参数传递给构造函数或该类中的方法将导致

CharSequence
一个字符序列是一个可读的char值序列。这个接口提供多种不同类型的统一、只读访问对许多种类的char序列。一个char值代表一个字符BMP或代理。

此接口没有定义整体联系{@link
* java.lang.Object#equals(java.lang.Object) equals} and {@link
* java.lang.Object#hashCode() hashCode} 方法。
CharSequence 比较两个对象的结果未定义。
每个对象可以由不同类实现
不能保证每个类都能够测试它的实例与其他的实例相等性
因此不宜使用CharSequence实例作为set的元素或者map的keys

Appendable
可以追加char序列和值的对象。这个可追加的接口必须由实现类实现 尝试去接收格式化的output 从{@link
* java.util.Formatter}.
要追加的字符应该是有效的Unicode字符,
注意补充字符可以有多个16位的char值组成

对于多线程访问来说不一定是安全的。
线程安全是实现和扩展这个接口的类的责任

因为这个接口可以由现有的类实现不同的错误处理风格并不能保证错误将传播到调用程序。

你可能感兴趣的:(jdk)