StringBuffer && StringBuilder

---默认char[] value 长度从 16开始增加。 ???

---继承自:AbstractStringBuilder类 ---> String类的各种方法

lastIndexOf(XXX)


区别于:String类的方法

reverse()

insert()

delete()


底层:操作数组,工具类:System.arraycopy();Arrays.copyOf()

StringBuffer--->synchronized

**注意并不是所有的方法都是线程安全的。




StringBuilder--->非线程安全










note:

* 编码问题:
* GBK每个汉字两个字节,而UTF-8每个汉字三个字节
* getBytes()会采用操作系统默认的字符集来编码字节,这里就是GBK,
* 所以我们写入demo.txt文件的是GBK编码的字节。那么这个文件的编码就是GBK。
* 如果稍微修改一下程序:out.write("我们".getBytes(“UTF-8”));此时我们写入的字节就是UTF-8的,
* 那么demo.txt文件编码就是UTF-8。这里还有一点,如果把”我们”换成123或abc之类的ascii码字符,那么无论是采用getBytes()或者getBytes(“UTF-8”)那么生成的文件都将是GBK编码的。
* InputStream中的字节编码取决文件本身的编码,而OutputStream生成文件的编码取决于字节的编码




inputStreamReader

* InputStreamReader是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。
* 它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。
posted @ 2020-03-17 14:29  小海_macro  阅读(216)  评论(0编辑  收藏  举报