全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页

JAVA IO与NIO深入专题测试

20 题 45 分钟 难度:

考察知识点

本试卷涵盖以下核心知识点:

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 流体系的设计模式是什么?

A

工厂模式

B

装饰器模式

C

单例模式

D

观察者模式

2
判断题

Java IO 流体系中,所有输入流都继承自 InputStream 或 Reader,所有输出流都继承自 OutputStream 或 Writer。

A

B

3
单选题

以下哪种场景应该优先使用字符流?

A

复制图片文件

B

读取文本文件内容

C

下载视频文件

D

复制 ZIP 压缩包

4
多选题

关于字节流与字符流的区别,以下说法正确的有?

A

字节流处理单位是 8 位字节,字符流处理单位是 16 位字符

B

字节流不涉及编码转换,字符流会自动处理编码

C

InputStreamReader 是字节流到字符流的桥梁

D

字节流比字符流效率更高,应该优先使用

5
单选题

以下哪个类可以为字符输入流提供缓冲功能?

A

BufferedInputStream

B

BufferedReader

C

InputStreamReader

D

FileReader

6
多选题

以下关于转换流的说法,正确的有?

A

InputStreamReader 将字节流转换为字符流

B

OutputStreamWriter 将字符流转换为字节流

C

转换流可以指定字符编码

D

FileReader 内部使用了 InputStreamReader

7
单选题

Java 对象要实现序列化,必须实现哪个接口?

A

Cloneable

B

Serializable

C

Externalizable

D

Comparable

8
多选题

关于 Java 对象序列化,以下说法正确的有?

A

transient 关键字修饰的字段不会被序列化

B

static 字段不会被序列化

C

serialVersionUID 用于验证版本一致性

D

反序列化时会调用构造方法

9
多选题

关于 NIO 核心组件,以下说法正确的有?

A

Channel 是双向的,可以同时读写

B

Buffer 提供了 flip() 方法切换读写模式

C

Selector 用于实现多路复用,一个线程管理多个 Channel

D

FileChannel 可以设置为非阻塞模式

10
单选题

以下哪个 Channel 可以设置为非阻塞模式?

A

FileChannel

B

SocketChannel

C

DatagramChannel

D

B 和 C 都可以

11
多选题

关于 NIO 非阻塞模式的特点,以下说法正确的有?

A

非阻塞模式下,read/write 操作可能返回 0

B

非阻塞模式需要配合 Selector 才能高效工作

C

非阻塞模式适合处理大量并发连接

D

非阻塞模式比阻塞模式编程更简单

12
单选题

Java NIO.2 中用于表示文件路径的类是?

A

File

B

Path

C

FilePath

D

URI

13
多选题

关于 Files 工具类,以下说法正确的有?

A

Files.readAllLines() 读取文件所有行到 List

B

Files.write() 可以一次性写入字节或字符串

C

Files.copy() 可以复制文件或目录

D

Files.walk() 可以递归遍历目录树

14
多选题

关于 IO 与 NIO 的区别,以下说法正确的有?

A

IO 基于流,NIO 基于缓冲区

B

IO 是阻塞模式,NIO 支持非阻塞模式

C

NIO 可以用单线程管理多个连接

D

NIO 的编程复杂度比 IO 低

15
填空题

BufferedReader 类提供了________方法,可以一次读取一行文本。BufferedWriter 类提供了_______方法,可以写入一个换行符。

16
多选题

Selector 可以监控 Channel 的哪些就绪状态?

A

OP_READ - 读就绪

B

OP_WRITE - 写就绪

C

OP_CONNECT - 连接就绪

D

OP_ACCEPT - 接收就绪

17
判断题

Files.exists(Path) 方法可以检查文件或目录是否存在,Files.notExists(Path) 方法检查不存在。

A

B

18
填空题

AsynchronousFileChannel 的 read 方法可以返回______对象用于获取结果,也可以传入_________________回调接口处理完成事件。

19
多选题

以下代码使用了哪些装饰流?

Java
BufferedReader br = new BufferedReader(
    new InputStreamReader(
        new FileInputStream("test.txt"), "UTF-8"));
A

FileInputStream 是节点流

B

InputStreamReader 是转换流(装饰流)

C

BufferedReader 是缓冲流(装饰流)

D

整体采用了装饰器模式组合功能

20
判断题

处理少量连接(如几十个)时,传统阻塞 IO 多线程模型比 NIO 单线程模型性能更好。

A

B

下一个试卷 → JAVA JVM基础与内存模型专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库