Skip to content

06 — IO与NIO索引

定位: Java 的输入输出系统 — 字节/字符、阻塞/非阻塞,从文件到网络的数据通道 面试高频度: ⭐⭐⭐⭐

一、知识全景图

┌─────────────────────────────────────────────────────────────┐
│                  Java IO 系统全景                            │
│                                                              │
│  ┌──────────── 传统 IO (java.io) ────────────────────┐      │
│  │                                                     │      │
│  │  字节流: InputStream / OutputStream (1字节=8位)      │      │
│  │  字符流: Reader / Writer (1字符=2字节)               │      │
│  │  缓冲流: BufferedInputStream → 减少磁盘IO次数         │      │
│  │  装饰器: 多层包装 → IO 是装饰器模式的典型应用          │      │
│  └─────────────────────────────────────────────────────┘      │
│                                                              │
│  ┌──────────── NIO (java.nio) ───────────────────────┐      │
│  │                                                     │      │
│  │  核心三件套: Channel + Buffer + Selector            │      │
│  │  非阻塞 IO → 一个线程管多个连接 (Reactor 模式)        │      │
│  │  直接内存 → 减少用户态/内核态拷贝                    │      │
│  └─────────────────────────────────────────────────────┘      │
│                                                              │
│  ┌──────────── 序列化 ──────────────────────────────┐      │
│  │                                                     │      │
│  │  Serializable 接口 → 对象↔字节流的双向转换            │      │
│  │  serialVersionUID → 版本控制                         │      │
│  └─────────────────────────────────────────────────────┘      │
└─────────────────────────────────────────────────────────────┘

二、子专题导航

#主题面试频率核心内容
**字节流与字符流**字节流与字符流⭐⭐⭐流分类、编码问题、InputStream/Reader 层级
**缓冲流与装饰器模式**缓冲流与装饰器模式⭐⭐⭐装饰器模式在 IO 中的应用、缓冲区设计
**NIO核心**NIO核心⭐⭐⭐⭐Channel/Buffer/Selector、BIO vs NIO、直接内存
**序列化机制**序列化机制⭐⭐⭐Serializable、serialVersionUID、transient、自定义序列化

📚 相关文件

  • **Java文库设计文档** — 返回总纲
  • **直接内存** — NIO 直接内存的 JVM 原理

Knowledge4J — Java 知识库