如果你写过 Java 网络程序,多半遇到过这样的场景:本地测试一切正常,一上量就卡死;线程池越开越大,CPU 却上不去;想读源码搞明白 Selector 到底怎么工作,打开 JDK 又不知道从哪一行看起。这门课针对的就是这类问题——它不讲语法基础,而是把 BIO、NIO、AIO 三种 I/O 模型放在一起对照,讲清楚每种模型在服务端和客户端分别怎么写、为什么会阻塞、阻塞点在哪里。

先看哪几块:从 BIO 的阻塞点切入

课程开头没有直接讲 NIO,而是先把 BIO 同步阻塞的特点讲透,包括单线程服务端的实现、单个客户端和多个客户端的连接过程。这个顺序是有道理的:只有亲手看到多个客户端连上来之后服务端为什么被卡住,后面理解 NIO 的多路复用才有参照物。如果你时间有限,建议先把 BIO 这部分完整过一遍,再进入 NIO 通信模型和 API 源码解析。源码部分不需要逐行背下来,重点是跟着走一遍调用链,知道 Selector、Channel、Buffer 之间是怎么协作的,遇到问题时能定位到大致方向。AIO 部分可以放在最后看,它更偏补充,实际项目中用得不如 NIO 普遍,但作为对照能帮你把三种模型的边界分清楚。

适合什么基础,学完能做什么

这门课不适合零基础。你至少要知道 Java 基本语法、会写简单的 Socket 程序,最好对线程和线程池有概念,否则 BIO 那部分的阻塞演示看起来会很吃力。反过来,如果你已经能写业务代码但没系统梳理过 I/O 模型,或者面试被问到 NIO 只能背概念,这门课的针对性就比较强。学完之后,你应该能独立写出一个基于 NIO 的简单服务端和客户端,能说清楚为什么 NIO 用少量线程就能撑住更多连接,也能在读框架源码时看懂 Netty 这类库在底层做了什么。注意,课程本身不涉及框架封装,学完不等于会直接用 Netty,但底层这层通了,上层框架会好学很多。

资料怎么配合练习

视频部分按模型分段,每段都能单独跑起来,建议边看边敲,不要只看不写。BIO 那几个客户端连接的例子最好自己改一下并发数量,观察服务端线程状态的变化,这种体感比看讲解更直接。源码解析部分可以对照 JDK 里的实现跟读,遇到看不懂的方法先跳过,回头再补。学完一个模型就自己动手写一遍最小可运行版本,比反复看视频有效。整体节奏上,BIO 和 NIO 值得花主要时间,AIO 快速过一遍即可,把精力留给真正会在工作中用到的部分。

本页收录 Java NIO全套精讲教程(BIO NIO AIO及NIO API源码解析),方向为后端开发,重点涉及 Java、AI。

内容涵盖:NIO通信模型、Io Ac AlbD I A E o、BIO NIO AIOu A`IOu~a、BIO同步阻塞的特点、单线程服务端的实现、单个客户端的实现 等主题。

适合正在补 Java、AI 相关知识、想按目录逐步推进的学习者。

下方为完整资料与目录,可先看目录判断是否符合需要。



**目录:**


课程目录

*   **视频课程**

   *   00-NIO通信模型-课程介绍.mp4

   *   02 01- Io Ac AlbD I A E o-BIO NIO AIOu A`IOu~a.mp4

   *   02-BIO同步阻塞的特点-单线程服务端的实现.mp4

   *   04 03-BIO同步阻塞的特点-单个客户端的实现.mp4

   *   04-BIO同步阻塞的特点-多个客户端造成的阻塞.mp4

   *   06 05-BIO同步阻塞的特点-多线程解决阻塞问题.mp4

   *   07 06-BIO同步阻塞的特点-BIO的局限.mp4

   *   07-NIO快速开始-NIO线程模型.mp4

   *   08-NIO快速开始-NIO通信流程.mp4

   *   10 09-NIO快速开始-服务端的实现.mp4

   *   10-NIO快速开始-服务端处理客户端的连接请求.mp4

   *   12 11-NIO快速开始-服务端处理客户端的写请求.mp4

   *   13 12-NIO快速开始-NIO非阻塞的具体表象.mp4

   *   14 13-NIO快速开始-客户端的实现.mp4

   *   15 14-Channel详解-Channel概述.mp4

   *   15-Channel详解-FileChannel读取数据.mp4

   *   16-Channel详解-FileChannel写数据.mp4

   *   18 17-Channel详解-FileChannel通道传输.mp4

   *   19 18-Channel详解-FileChannel的其他方法.mp4

   *   19-Channel详解-ServerSocketChannel详解.mp4

   *   21 20-Channel详解-SocketChannel详解.mp4

   *   21-Channel详解-DatagramChannel介绍.mp4

   *   23 22-Channel详解-DatagramChannel发送和接收的实现.mp4

   *   23-Channel详解-DatagramChannel的read和write方法.mp4

   *   25 24-Channel详解-分散和聚集.mp4

   *   26 25-Buffer详解-Buffer概述.mp4

   *   27 26-Buffer详解-Buffer三大关键属性.mp4

   *   28 27-Buffer详解-Buffer的方法.mp4

   *   29 28-Buffer详解-Buffer实现类的常用方法.mp4

   *   30 29-Buffer详解-Buffer缓冲区的分类.mp4

   *   31 30-Selector详解-Selector核心逻辑.mp4

   *   32 31-Selector详解-Selector的使用.mp4

   *   33 32-Selector详解-Selector示例之客户端和服务端的通信逻辑.mp4

   *   34 33-Selector详解-Selector示例之客户端和服务端的实现.mp4

   *   35 34-NIO中的其他类-Pipe类的介绍及使用.mp4

   *   36 35-NIO中的其他类-FileLock类的介绍及使用.mp4

   *   37 36-NIO中的其他类-Path类的介绍及使用.mp4

   *   38 37-NIO中的其他类-Files类的介绍及使用.mp4

   *   39 38-NIO中的其他类-异步文件通道的读取数据操作.mp4

   *   40 39-NIO中的其他类-异步文件通道的写入数据操作.mp4

   *   41 40-NIO综合案例-聊天室的业务逻辑.mp4

   *   42 41-NIO综合案例-聊天室服务端的实现.mp4

   *   43 42-NIO综合案例-聊天室服务端总结.mp4

   *   44 43-NIO综合案例-聊天室客户端的实现.mp4

   *   45 44-NIO综合案例-聊天室功能演示.mp4

   *   46 45-AIO详解-AIO概述及服务端编写.mp4

   *   47 46-AIO详解-AIO客户端编写.mp4

   *   48 47-AIO详解-BIO和NIO和AIO的对比.mp4


*   **资料包**

   *   资料.zip


**总计:** 49 个文件