1919
2020
2121
22- 参考视频:https://www.bilibili.com/video/BV1TE41177mP
23-
24-
25-
2622***
2723
2824
@@ -6403,7 +6399,7 @@ public class AgeIllegalRuntimeException extends RuntimeException{
64036399
64046400
64056401
6406- ### 异常规范
6402+ ### 处理规范
64076403
64086404异常的语法注意:
64096405
@@ -7180,10 +7176,10 @@ B 66
71807176
71817177中国人:中国人有 9 万左右字符,2 个字节编码一个中文字符,1 个字节编码一个英文字符,这套编码叫:GBK 编码,兼容 ASCII 编码表
71827178
7183- 美国人:收集全球所有的字符,统一编号,这套编码叫 Unicode编码 (万国码),一个英文等于两个字节,一个中文(含繁体)等于两个字节,中文标点占两个字节,英文标点占两个字节
7179+ 美国人:收集全球所有的字符,统一编号,这套编码叫 Unicode 编码 (万国码),一个英文等于两个字节,一个中文(含繁体)等于两个字节,中文标点占两个字节,英文标点占两个字节
71847180
71857181* UTF-8 是变种形式,也必须兼容ASCII编码表
7186- * UTF-8一个中文一般占 3 个字节,中文标点占 3 个,英文字母和数字 1 个字节
7182+ * UTF-8 一个中文一般占 3 个字节,中文标点占 3 个,英文字母和数字 1 个字节
71877183
71887184编码前与编码后的编码集必须一致才不会乱码
71897185
@@ -7513,7 +7509,11 @@ fw.close;
75137509
75147510
75157511
7516- ##### 字节缓冲输入流
7512+ ***
7513+
7514+
7515+
7516+ ##### 字节缓冲输入
75177517
75187518字节缓冲输入流:BufferedInputStream
75197519
@@ -7543,7 +7543,11 @@ public class BufferedInputStreamDemo01 {
75437543
75447544
75457545
7546- ##### 字节缓冲输出流
7546+ ***
7547+
7548+
7549+
7550+ ##### 字节缓冲输出
75477551
75487552字节缓冲输出流:BufferedOutputStream
75497553
@@ -7572,7 +7576,7 @@ public class BufferedOutputStreamDemo02 {
75727576
75737577
75747578
7575- ##### 字节流的性能分析
7579+ ##### 字节流性能
75767580
75777581利用字节流的复制统计各种写法形式下缓冲流的性能执行情况。
75787582
@@ -7591,7 +7595,7 @@ public class BufferedOutputStreamDemo02 {
75917595
75927596
75937597
7594- ##### 字符缓冲输入流
7598+ ##### 字符缓冲输入
75957599
75967600字符缓冲输入流:BufferedReader
75977601
@@ -7625,7 +7629,11 @@ public static void main(String[] args) throws Exception {
76257629
76267630
76277631
7628- ##### 字符缓冲输出流
7632+ ***
7633+
7634+
7635+
7636+ ##### 字符缓冲输出
76297637
76307638符缓冲输出流:BufferedWriter
76317639
@@ -7656,19 +7664,19 @@ public static void main(String[] args) throws Exception {
76567664
76577665##### 高效原因
76587666
7659- 字符型缓冲流高效的原因:
7667+ 字符型缓冲流高效的原因:(空间换时间)
76607668
7661- * BufferedReader:每次调用read方法,只有第一次从磁盘中读取了8192 (**8k**)个字符,存储到该类型对象的缓冲区数组中,将其中一个返回给调用者,再次调用read方法时 ,就不需要访问磁盘,直接从缓冲区中拿出一个数据即可,提升了效率
7662- * BufferedWriter:每次调用write方法 ,不会直接将字符刷新到文件中,而是存储到字符数组中,等字符数组写满了,才一次性刷新到文件中,减少了和磁盘交互的次数,提升了效率
7669+ * BufferedReader:每次调用 read 方法,只有第一次从磁盘中读取了 8192 (**8k**)个字符,存储到该类型对象的缓冲区数组中,将其中一个返回给调用者,再次调用 read 方法时 ,就不需要访问磁盘,直接从缓冲区中拿出一个数据即可,提升了效率
7670+ * BufferedWriter:每次调用 write 方法 ,不会直接将字符刷新到文件中,而是存储到字符数组中,等字符数组写满了,才一次性刷新到文件中,减少了和磁盘交互的次数,提升了效率
76637671
76647672字节型缓冲流高效的原因:
76657673
7666- * BufferedInputStream:在该类型中准备了一个数组,存储字节信息,当外界调用read() 方法想获取一个字节的时候,该对象从文件中一次性读取了8192个字节到数组中 ,只返回了第一个字节给调用者。将来调用者再次调用read方法时 ,当前对象就不需要再次访问磁盘,只需要从数组中取出一个字节返回给调用者即可,由于读取的是数组,所以速度非常快。当8192个字节全都读取完成之后 ,再需要读取一个字节,就得让该对象到文件中读取下一个8192个字节
7667- * BufferedOutputStream:在该类型中准备了一个数组,存储字节信息,当外界调用write方法想写出一个字节的时候 ,该对象直接将这个字节存储到了自己的数组中,而不刷新到文件中。一直到该数组所有8192个位置全都占满 ,该对象才把这个数组中的所有数据一次性写出到目标文件中。如果最后一次循环过程中,没有将数组写满 ,最终在关闭流对象的时候,也会将该数组中的数据刷新到文件中。
7674+ * BufferedInputStream:在该类型中准备了一个数组,存储字节信息,当外界调用 read() 方法想获取一个字节的时候,该对象从文件中一次性读取了 8192 个字节到数组中 ,只返回了第一个字节给调用者。将来调用者再次调用 read 方法时 ,当前对象就不需要再次访问磁盘,只需要从数组中取出一个字节返回给调用者即可,由于读取的是数组,所以速度非常快。当 8192 个字节全都读取完成之后 ,再需要读取一个字节,就得让该对象到文件中读取下一个 8192 个字节
7675+ * BufferedOutputStream:在该类型中准备了一个数组,存储字节信息,当外界调用 write 方法想写出一个字节的时候 ,该对象直接将这个字节存储到了自己的数组中,而不刷新到文件中。一直到该数组所有 8192 个位置全都占满 ,该对象才把这个数组中的所有数据一次性写出到目标文件中。如果最后一次循环没有将数组写满 ,最终在关闭流对象的时候,也会将该数组中的数据刷新到文件中。
76687676
76697677
76707678
7671- 注意:**字节流和字符流,都是装满时自动写出,或者没满时手动flush写出,或close时刷新写出 **
7679+ 注意:**字节流和字符流,都是装满时自动写出,或者没满时手动 flush 写出,或 close 时刷新写出 **
76727680
76737681
76747682
@@ -7689,16 +7697,16 @@ GBK GBK 不乱码!
76897697UTF-8 GBK 乱码!
76907698```
76917699
7692- 如果代码编码和读取的文件编码一致。 字符流读取的时候不会乱码。
7693- 如果代码编码和读取的文件编码不一致。 字符流读取的时候会乱码。
7700+ 如果代码编码和读取的文件编码一致, 字符流读取的时候不会乱码。
7701+ 如果代码编码和读取的文件编码不一致, 字符流读取的时候会乱码。
76947702
76957703
76967704
76977705***
76987706
76997707
77007708
7701- ##### 字符输入转换流
7709+ ##### 字符输入
77027710
77037711字符输入转换流:InputStreamReader
77047712
@@ -7707,7 +7715,7 @@ UTF-8 GBK 乱码!
77077715构造器:
77087716
77097717* `public InputStreamReader(InputStream is)` : 使用当前代码默认编码 UTF-8 转换成字符流
7710- * `public InputStreamReader(InputStream is,String charset)` : 指定编码把字节流转换成字符流
7718+ * `public InputStreamReader(InputStream is, String charset)` : 指定编码把字节流转换成字符流
77117719
77127720```java
77137721public class InputStreamReaderDemo{
@@ -7729,7 +7737,11 @@ public class InputStreamReaderDemo{
77297737
77307738
77317739
7732- ##### 字符输出转换流
7740+ ***
7741+
7742+
7743+
7744+ ##### 字符输出
77337745
77347746字符输出转换流:OutputStreamWriter
77357747
@@ -7738,7 +7750,7 @@ public class InputStreamReaderDemo{
77387750构造器:
77397751
77407752* `public OutputStreamWriter(OutputStream os)` : 用默认编码 UTF-8 把字节输出流转换成字符输出流
7741- * `public OutputStreamWriter(OutputStream os , String charset)` : 指定编码把字节输出流转换成
7753+ * `public OutputStreamWriter(OutputStream os, String charset)` : 指定编码把字节输出流转换成
77427754
77437755```Java
77447756OutputStream os = new FileOutputStream("Day10Demo/src/dlei07.txt");
@@ -9670,6 +9682,8 @@ JVM、JRE、JDK对比:
96709682
96719683
96729684
9685+ 参考书籍:https://book.douban.com/subject/34907497/
9686+
96739687参考视频:https://www.bilibili.com/video/BV1PJ411n7xZ
96749688
96759689参考视频:https://www.bilibili.com/video/BV1yE411Z7AP
@@ -15370,7 +15384,7 @@ GCViewer 是一款离线的 GC 日志分析器,用于可视化 Java VM 选项
1537015384
1537115385
1537215386
15373- 参考书籍:《数据结构高分笔记》
15387+ 参考书籍:https://book.douban.com/subject/35263893/
1537415388
1537515389
1537615390
0 commit comments