StringBuffer
/**
* @date 2020/9/25 6:46
* StringBuffer
*/
public class Test16_StringBuffer {
public static void main(String[] args) {
// 参数传递int类型表示声明StringBuffer的初始化容量长度
StringBuffer s1 = new StringBuffer(10);
// length输出的是字符串的长度
System.out.println(s1.length());
// 添加之的是字符串不是容量长度
s1.append("1234");
// 输出的是改变之后的长度
System.out.println(s1.length());
System.out.println(s1.capacity());
// 如果append添加的长度 小于 capacity 就返回 capacity 的值
StringBuffer stringBuffer2 = new StringBuffer(10);
stringBuffer2.append("123");
System.out.println(stringBuffer2.capacity()); // 10
// 如果append添加的长度 大于 capacity 且 小于 2 * capacity + 2 就返回 2*capacity+2
StringBuffer stringBuffer3 = new StringBuffer(3);
stringBuffer3.append("1234");
System.out.println(stringBuffer3.capacity()); // 3 * 2 + 2 = 8
// 如果append添加的长度 大于 2 * capacity + 2 就返回添加的长度
StringBuffer stringBuffer4 = new StringBuffer(2);
stringBuffer4.append("1234567");
System.out.println(stringBuffer4.capacity()); // stringBuffer4.length() = 7
}
}
StringBuffer和StringBuilder的默认大小为16
ArrayList和LinkedList的默认大小10
流
节点流:可以从或向一个特定地方读写数据。
- 文件流:FileInputStream FileOutputStream FileReader FileWriter
- 字符串处理流:StringReader StrngWriter
- 数组处理流:ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter
- 管道流: PipedInputStream PipedOutputStream PipedReader PipedWriter
处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。
- 缓冲流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter 增加缓冲功能,避免频繁读写硬盘。
- 转换流:InputStreamReader OutputStreamReader 实现字节流和字符流之间的转换。
- 数据流 DataInputStream DataOutputStream 等-提供将基础数据类型写入到文件中,或者读取出来。