五、Java IO/NIO
Java IO/NIO 是 Java 处理输入输出的核心模块,涵盖文件操作、网络通信、序列化等技术。✅ 章节已全部完成
章节目录
| 文章 | 简介 | 状态 |
|---|---|---|
| BIO vs NIO vs AIO | 三种 IO 模型对比:同步阻塞、同步非阻塞、异步非阻塞 | ✅ 已完成 |
| NIO 核心组件 | Channel、Buffer、Selector 三大核心组件详解 | ✅ 已完成 |
| 零拷贝 | 零拷贝技术:mmap、sendfile 原理与应用 | ✅ 已完成 |
| 序列化与反序列化 | Java 序列化、Protobuf、Kryo 等框架对比 | ✅ 已完成 |
| NIO.2 文件操作 | Path、Files 类的使用,文件监控 | ✅ 已完成 |
| IO 性能优化 | 缓冲优化、直接内存、零拷贝、异步 IO | ✅ 已完成 |
📊 完成进度
| 分类 | 已完成 | 总数 | 进度 |
|---|---|---|---|
| Java IO/NIO | 6 | 6 | 100% ✅ |
核心知识图谱
Java IO/NIO
├── IO 模型
│ ├── BIO(同步阻塞)
│ ├── NIO(同步非阻塞)
│ └── AIO(异步非阻塞)
├── NIO 核心
│ ├── Channel(通道)
│ ├── Buffer(缓冲区)
│ └── Selector(多路复用器)
├── 零拷贝
│ ├── mmap
│ ├── sendfile
│ └── transferTo
├── 序列化
│ ├── Java 原生
│ ├── JSON
│ ├── Protobuf
│ └── Kryo
└── 性能优化
├── 缓冲
├── 直接内存
└── 异步 IO面试高频问题
- BIO、NIO、AIO 的区别?
- NIO 的三大核心组件是什么?
- ByteBuffer 的 flip() 方法作用?
- 什么是零拷贝?如何实现?
- Java 序列化有几种方式?
- 如何优化 IO 性能?
- File 和 Path 的区别?
- 如何监控文件变化?
学习建议
- 理解 IO 模型:掌握三种 IO 模型的区别和适用场景
- 实践 NIO 编程:手写一个简单的 NIO 服务器
- 了解零拷贝:理解底层原理,掌握 transferTo 的使用
- 对比序列化框架:了解各框架的优缺点和适用场景
- 性能优化:掌握常见的 IO 性能优化手段