概述:
本次笔记主要记录了StringBuilder和StringBuffer的接口,两种类拥有近乎相同的成员方法,主要区别在于StringBuffer是基于线程安全的,StringBuilder是非线程安全的,如果不涉及线程问题使用StringBuilder,可以获得更好的实现和空间优势;此外还记录了相关的父接口:java.lang.CharSequence和java.lang.Appendable
目录:
java.lang.StringBuilder(非线程安全的)
java.lang.CharSequence
申明:public interface CharSequence
已知子接口:Name
已知实现类:CharBuffer, Segment, String, StringBuffer,StringBuilder
接口作用描述:CharSequence
是char
值的可读序列。 该接口提供对许多不同类型的char
序列的统一的只读访问。 A char
值表示基本多语言平面(BMP)或代理中的字符。
接口方法:
char charAt(int index);//返回指定索引处得人char值
default IntStream char();//返回从这个蓄力中拓展char值的int流
default IntStream codePoints();//返回次序列的码流值
int length();//返回次字符序列的长度
CharSequence subSequence(int start, int end);//返回此字符序列的一个子序列
String toString();//按照字符序列中的顺序返回表示此序列的字符串
java.lang.Appendable
申明:public interface Appendable()
已知实现类:BufferedWriter
, CharArrayWriter
, CharBuffer
, FileWriter
, FilterWriter
, LogStream
, OutputStreamWriter
, PipedWriter
, PrintStream
, PrintWriter
, StringBuffer
, StringBuilder
, StringWriter
, Writer
接口方法:
Appendable append(char c);//将指定字符追加到此Appenable
Appendable append(CharSequence csq);//将指定字符序列追加到此Appendable
Appendable append(CharSequence csq, int start, int end);//将指定字符序列的子序列追加到此Appendable
java.lang.StringBuilder(非线程安全的)
申明:public final class StringBuilder extends Object implements Serializable, CharSequence
父类: Object
实现接口: Serializable, Appendable, CharSequence
构造方法:
StringBuilder();//构造一个没有字符的字符串构建器,初始容量为16个字符
StringBuilder(int capacity);//构造一个没有字符的字符串构造器,初始容量由传入的参数指定
StringBuilder(CharSequence seq);//构造一个构造器,其中包含于传入的序列相同的字符
StringBuilder(String str);//创建一个由字符串指定内容的字符串构建器
成员方法:
StringBuilder append(boolean b);//将boolean参数的字符串表示附加到序列中
StringBuilder append(char c);
StringBuilder append(char[] str);
StringBuilder append(char[] str, int offset, int len);//将指定字符数组的子阵列的字符串表示追加到此序列
StringBuilder append(double d);
StringBuilder append(float f);
StringBuilder append(int i);
StringBuilder append(long lng);
StringBuilder append(CharSequence seq);
StringBuilder append(CharSequence seq, int start, int end);
StringBuilder append(Object obj);//在此处,个人理解,会事先调用传入对象的toString()方法,将返回的值追加
StringBuilder append(String str);
StringBuilder append(StringBuffer sb);
StringBuilder appendCodePoint(int codePoint);//将codePoint参数的字符串附加到此序列
StringBuilder insert(int offset, boolean b);//将传入的boolean的字符串表示插入到指定的位置中
StringBuilder insert(int offset, char c);
StringBuilder insert(int offset, char[] str);
StringBuilder insert(int index, char[] strr, int offset, int len);
StringBuilder insert(int offset, double d);
StringBuilder insert(int offset, float f);
StringBuilder insert(int offset, int i);
StringBuilder insert(int offset, long l);
StringBuilder insert(int desOffset, CharSequence s, int start, int end);
StringBuilder insert(int offset, Object obj);
StringBuilder insert(int offset, String str);
int indexOf(String str);//返回指定子字符串第一次出现在字符串中的位置索引
int indexOf(String str, int fromIndex);//从指定位置开始,子字符串自一次出现位置的索引
int lastIndexOf(String str);
int lastIndexOf(String str, ing fromIndex);
String subString(int start);//返回String,其中包含了从指定位置开始的子序列
String subString(int start, int end);
CharSequence subSequence(int start, int end);
String toString();//返回表示此序列中的数据的字符串
char charAt(int index);//返回指定索引处的此序列中的 char值。
void setCharAt(ing index, char ch);//指定索引处的字符设置为 ch 。
IntStream codePoints();//返回此序列的码流值
int codePointAt(int index);//返回指定索引处的字符(Unicode代码点)。
int codePointBefore(int index);返回指定索引之前的字符(Unicode代码点)。
int codePointCount(int beginIndex, int endIndex);//返回此序列指定文本范围内的Unicode代码点数。
int offsetByCodePoints(int index, int codePointOffset);//返回此序列中与 index由 codePointOffset代码点偏移的索引。
int length();//返回长度(字符数)
void setLength(int newLength);//设置字符序列的长度
int capacity();//返回当前容量
void ensureCapacity(int minimumCapacity);//确保容量至少等于规定的最小值。
void tirmToSize();//尝试减少用于字符序列的存储。 将没有真正存储字符的容量进行回收
StringBuilder reverse();//导致该字符序列被序列的相反代替。
StringBuilder replace(int start, int end, String str);//用指定的 String的字符替换此序列的子字符串中的字符。
StringBuilder delete(int start, int end);//删除此序列的子字符串中的字符。
StringBuilder deleteCharAt(int index);//在此序列中的指定位置移除 char 。
IntStream chars();//返回一个 int的数据流,从这个序列中扩展 char值。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);//字符从该序列复制到目标字符数组 dst 。
java.lang.StringBuffer(线程安全的)
申明:public final class StringBuffer extends Object implements Serializable, CharSequence
父类:Object
实现接口:Serializable, Appendable, CharSequence
构造方法:
StringBuffer();//构造一个没有字符的字符串缓冲区,初始容量为16字符
StringBuffer(int capacity);//构造一个没有字符但指定容量的字符缓冲区
StringBuffer(CharSequence seq);//构造一个包含指定CharSequence中内容的字符缓冲区
StringBuffer(String str);//构造一个初始换为指定字符串内容的字符缓冲区
成员方法:
StringBuffer append(boolean b);//将boolean参数的字符串表示附加到序列中
StringBuffer append(char c);
StringBuffer append(char[] str);
StringBuffer append(char[] str, int offset, int len);//将指定字符数组的子阵列的字符串表示追加到此序列
StringBuffer append(double d);
StringBuffer append(float f);
StringBuffer append(int i);
StringBuffer append(long lng);
StringBuffer append(CharSequence seq);
StringBuffer append(CharSequence seq, int start, int end);
StringBuffer append(Object obj);//在此处,个人理解,会事先调用传入对象的toString()方法,将返回的值追加
StringBuffer append(String str);
StringBuffer append(StringBuffer sb);
StringBuffer appendCodePoint(int codePoint);//将codePoint参数的字符串附加到此序列
StringBuffer insert(int offset, boolean b);//将传入的boolean的字符串表示插入到指定的位置中
StringBuffer insert(int offset, char c);
StringBuffer insert(int offset, char[] str);
StringBuffer insert(int index, char[] strr, int offset, int len);
StringBuffer insert(int offset, double d);
StringBuffer insert(int offset, float f);
StringBuffer insert(int offset, int i);
StringBuffer insert(int offset, long l);
StringBuffer insert(int desOffset, CharSequence s, int start, int end);
StringBuffer insert(int offset, Object obj);
StringBuffer insert(int offset, String str);
int indexOf(String str);//返回指定子字符串第一次出现在字符串中的位置索引
int indexOf(String str, int fromIndex);//从指定位置开始,子字符串自一次出现位置的索引
int lastIndexOf(String str);
int lastIndexOf(String str, ing fromIndex);
String subString(int start);//返回String,其中包含了从指定位置开始的子序列
String subString(int start, int end);
CharSequence subSequence(int start, int end);
String toString();//返回表示此序列中的数据的字符串
char charAt(int index);//返回指定索引处的此序列中的 char值。
void setCharAt(ing index, char ch);//指定索引处的字符设置为 ch 。
IntStream codePoints();//返回此序列的码流值
int codePointAt(int index);//返回指定索引处的字符(Unicode代码点)。
int codePointBefore(int index);返回指定索引之前的字符(Unicode代码点)。
int codePointCount(int beginIndex, int endIndex);//返回此序列指定文本范围内的Unicode代码点数。
int offsetByCodePoints(int index, int codePointOffset);//返回此序列中与 index由 codePointOffset代码点偏移的索引。
int length();//返回长度(字符数)
void setLength(int newLength);//设置字符序列的长度
int capacity();//返回当前容量
void ensureCapacity(int minimumCapacity);//确保容量至少等于规定的最小值。
void tirmToSize();//尝试减少用于字符序列的存储。 将没有真正存储字符的容量进行回收
StringBuffer reverse();//导致该字符序列被序列的相反代替。
StringBuffer replace(int start, int end, String str);//用指定的 String的字符替换此序列的子字符串中的字符。
StringBuffer delete(int start, int end);//删除此序列的子字符串中的字符。
StringBuffer deleteCharAt(int index);//在此序列中的指定位置移除 char 。
IntStream chars();//返回一个 int的数据流,从这个序列中扩展 char值。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);//字符从该序列复制到目标字符数组 dst 。