3
3
<!-- TOC -->
4
4
5
5
- [ 1. 面向对象和面向过程的区别] ( #1-面向对象和面向过程的区别 )
6
- - [ 面向过程] ( #面向过程 )
7
- - [ 面向对象] ( #面向对象 )
8
6
- [ 2. Java 语言有哪些特点?] ( #2-java-语言有哪些特点 )
9
7
- [ 3. 关于 JVM JDK 和 JRE 最详细通俗的解答] ( #3-关于-jvm-jdk-和-jre-最详细通俗的解答 )
10
8
- [ JVM] ( #jvm )
49
47
- [ 异常处理总结] ( #异常处理总结 )
50
48
- [ 33 Java序列化中如果有些字段不想进行序列化,怎么办?] ( #33-java序列化中如果有些字段不想进行序列化怎么办 )
51
49
- [ 34 获取用键盘输入常用的两种方法] ( #34-获取用键盘输入常用的两种方法 )
52
- - [ 35 Java 中 IO 流分为几种?BIO,NIO,AIO 有什么区别?] ( #35-java-中-io-流分为几种bionioaio-有什么区别 )
53
- - [ java 中 IO 流分为几种?] ( #java-中-io-流分为几种 )
50
+ - [ 35 Java 中 IO 流] ( #35-java-中-io-流 )
51
+ - [ Java 中 IO 流分为几种?] ( #java-中-io-流分为几种 )
52
+ - [ 既然有了字节流,为什么还要有字符流?] ( #既然有了字节流为什么还要有字符流 )
54
53
- [ BIO,NIO,AIO 有什么区别?] ( #bionioaio-有什么区别 )
55
54
- [ 36. 常见关键字总结: static ,final,this,super] ( #36-常见关键字总结staticfinalthissuper )
56
55
- [ 37. Collections 工具类和 Arrays 工具类常见方法总结] ( #37-collections-工具类和-arrays-工具类常见方法总结 )
@@ -478,9 +477,9 @@ BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
478
477
String s = input. readLine();
479
478
```
480
479
481
- ## 35 Java 中 IO 流分为几种 ? BIO , NIO , AIO 有什么区别 ?
480
+ ## 35 Java 中 IO 流
482
481
483
- ### java 中 IO 流分为几种?
482
+ ### Java 中 IO 流分为几种?
484
483
485
484
- 按照流的流向分,可以分为输入流和输出流;
486
485
- 按照操作单元划分,可以划分为字节流和字符流;
@@ -500,6 +499,12 @@ Java Io流共涉及40多个类,这些类看上去很杂乱,但实际上很
500
499
501
500

502
501
502
+ ### 既然有了字节流,为什么还要有字符流?
503
+
504
+ 问题本质想问:**不管是文件读写还是网络发送接收,信息的最小存储单元都是字节,那为什么 I/O 流操作要分为字节流操作和字符流操作呢?**
505
+
506
+ 回答:字符流是由 Java 虚拟机将字节转换得到的,问题就出在这个过程还算是非常耗时,并且,如果我们不知道编码类型就很容易出现乱码问题。所以, I/O 流就干脆提供了一个直接操作字符的接口,方便我们平时对字符进行流操作。如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。
507
+
503
508
### BIO,NIO,AIO 有什么区别?
504
509
505
510
- **BIO (Blocking I /O ):** 同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。在活动连接数不是特别高(小于单机1000)的情况下,这种模型是比较不错的,可以让每一个连接专注于自己的 I/O 并且编程模型简单,也不用过多考虑系统的过载、限流等问题。线程池本身就是一个天然的漏斗,可以缓冲一些系统处理不了的连接或请求。但是,当面对十万甚至百万级连接的时候,传统的 BIO 模型是无能为力的。因此,我们需要一种更高效的 I/O 处理模型来应对更高的并发量。
@@ -529,3 +534,4 @@ Java Io流共涉及40多个类,这些类看上去很杂乱,但实际上很
529
534
**Java工程师必备学习资源:** 一些Java工程师常用学习资源公众号后台回复关键字 **“1”** 即可免费无套路获取。
530
535
531
536

537
+
0 commit comments