BIO、NIO、AIO、Netty
1. 什么是IO
Java中I/O是以流为基础进行数据的输入输出的,所有数据被串行化(所谓串行化就是数据要按顺序
进行输入输出)写入输出流。简单来说就是java通过io流方式和外部设备进行交互。
在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操
作,网络上的数据传输流,字符串流,对象流等等等。
比如程序从服务器上下载图片,就是通过流的方式从网络上以流的方式到程序中,在到硬盘中
2. 在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别
同步,一个任务的完成之前不能做其他操作,必须等待(等于在打电话)
异步,一个任务的完成之前,可以进行其他操作(等于在聊QQ)
阻塞,是相对于CPU来说的, 挂起当前线程,不能做其他操作只能等待
非阻塞,,无须挂起当前线程,可以去执行其他操作
3. 什么是BIO