聊聊IO流
1.什么是IO流?
计算机中的流就是连续的数据流,I/O流就是输入源和输出目标之间的数据流。
2.讲讲五种IO模型?
参考:IO模型
3.仔细讲讲IO多路复用模型, select, poll, epoll?
4.java中有哪些类型的流?
从两个角度来看: 从输入输出方面来讲: Java中有输入流和输出流 从流的编码方式上来讲:Java中有字节流和字符流。
输入/输出 | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
5.讲讲java中的io和nio, java中相关的类, 用了那种设计模式?
参考:IO和NIO的区别
NIO 有一个主要的类Selector,这个类似一个观察者,只要我们把需要探知的socketchannel告诉Selector,我们接着做别的事情,当有事件发生时,他会通知我们,传回一组SelectionKey,我们读取这些Key,就会获得我们刚刚注册过的socketchannel,然后,我们从这个Channel中读取数据,放心,包准能够读到,接着我们可以处理这些数据。
6.java读磁盘中某个文件的数据是怎样的流程?
1 | import java.io.BufferedReader; |
7.java从socket中读数据的流程是怎样的? 数据是怎么从网线传输到网卡再到java层处理的?
1 | server端: |
8.什么是java序列化, 如何实现java序列化?
Java序列化:把Java对象转换为二进制的数据流流。 反序列化就是把字节序列恢复为Java对象的过程。
实现方式是实现java.io.Serializable接口.