JAVA IO与NIO深入专题测试
考察知识点
本试卷涵盖以下核心知识点:
Java IO流体系(3题)
- IO流采用装饰器模式设计
- IO流分为输入流和输出流两大类
- 四大基类:InputStream、OutputStream、Reader、Writer
字节流与字符流(2题)
- 字节流处理字节,字符流处理字符
- 字符流适合处理文本文件
- 字节流与字符流的区别与选择
缓冲流与转换流(3题)
- BufferedReader提供缓冲和readLine方法
- BufferedWriter的newLine方法
- InputStreamReader和OutputStreamWriter转换流
- 转换流可指定字符编码
对象序列化(3题)
- Serializable接口的作用
- transient关键字修饰的字段不序列化
- static字段不序列化
- serialVersionUID版本验证
- 反序列化不调用构造方法
NIO核心组件(Channel、Buffer、Selector)(2题)
- Channel是双向通道,可同时读写
- Buffer的flip()方法切换读写模式
- Selector实现多路复用,单线程管理多个Channel
- FileChannel不能设置为非阻塞
NIO非阻塞模式(3题)
- SocketChannel和DatagramChannel可设置非阻塞
- configureBlocking(false)设置非阻塞
- 非阻塞模式下read/write可能返回0
- Selector监控四种就绪状态:OP_READ、OP_WRITE、OP_CONNECT、OP_ACCEPT
Path、Files与FileSystem API(3题)
- Path类表示文件路径(替代File)
- Files工具类的常用方法
- Files.walk()、Files.lines()、Files.list()等Stream方法
IO与NIO性能对比(2题)
- IO基于流,NIO基于缓冲区
- IO阻塞模式,NIO支持非阻塞
- 少量连接时传统IO更简单高效
- 大量连接时NIO单线程多路复用优势明显
异步I/O(AsynchronousChannel)(2题)
- AIO使用Future或CompletionHandler获取结果
- CompletionHandler的completed和failed回调
💡 参考答案在文末
判断题
1
Java IO 流体系中,所有输入流都继承自 InputStream 或 Reader,所有输出流都继承自 OutputStream 或 Writer。
2
处理少量连接(如几十个)时,传统阻塞 IO 多线程模型比 NIO 单线程模型性能更好。
3
Files.exists(Path) 方法可以检查文件或目录是否存在,Files.notExists(Path) 方法检查不存在。
单选题
4
以下哪个 Channel 可以设置为非阻塞模式?
5
以下哪种场景应该优先使用字符流?
6
以下哪个类可以为字符输入流提供缓冲功能?
7
Java 对象要实现序列化,必须实现哪个接口?
8
Java NIO.2 中用于表示文件路径的类是?
9
Java IO 流体系的设计模式是什么?
多选题
10
关于 NIO 非阻塞模式的特点,以下说法正确的有?
11
关于 NIO 核心组件,以下说法正确的有?
12
关于 Java 对象序列化,以下说法正确的有?
13
关于 Files 工具类,以下说法正确的有?
14
关于 IO 与 NIO 的区别,以下说法正确的有?
15
Selector 可以监控 Channel 的哪些就绪状态?
16
以下关于转换流的说法,正确的有?
17
以下代码使用了哪些装饰流?
Java
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream("test.txt"), "UTF-8"));
18
关于字节流与字符流的区别,以下说法正确的有?
填空题
19
BufferedReader 类提供了____________方法,可以一次读取一行文本。BufferedWriter 类提供了____________方法,可以写入一个换行符。
20
AsynchronousFileChannel 的 read 方法可以返回____________对象用于获取结果,也可以传入____________回调接口处理完成事件。
参考答案
1.正确
2.正确
3.正确
4.D
5.B
6.B
7.B
8.B
9.B
10.A;B;C
11.A;B;C
12.A;B;C
13.A;B;C;D
14.A;B;C
15.A;B;C;D
16.A;B;C;D
17.A;B;C;D
18.A;B;C
19.readLine;newLine
20.Future;CompletionHandler
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码