大家肯定了解Java IO, 但是对于NIO一般是陌生的,而现在使用到NIO的场景越来越多,很多技术框架或多或少都会使用NIO技术,如Tomcat,Jetty。
学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。
Java NIO概述
早期程序受CPU影响较大,随着CPU处理能力的提升,现在的程序性能更多受I/O操作的影响, 其实各大操作系统对I/O操作做了很多性能的改进,但是JVM为了保证java程序在各种平台上运行效果一致,把各种操作系统对I/O性能的提升给屏蔽了, 使得Java在I/O领域一直处于劣势;
Java虽然有一套完备的I/O类,但是需要处理大量数据时,却可能对执行效率造成致命伤害,传统的I/O也不具备当今大多数操作系统具备的常用功能,如文件锁定,非阻塞I/O,内存映射等, 所以Java在JDK1.4中引用了NIO,可以最大限度的满足Java程序I/O的需求;
在NIO中有三大核心组件:
- Channel
- Buffer
- Selector
传统的IO面向流的,每次可以从流中读取一个或多个字节,只能向后读取,不能向前移动,NIO是面向缓冲区的,把数据读到一个缓冲区中,可以在缓冲区中向前/向后移动,增加了程序的灵活性。
在NIO中,所有的数组都需要通过Channel传输,通道可以直接将一块数据映射到内存中。Channel是双向的,不仅可以读 取数据, 还能保存数据,程序不能直接读写Channel通道,Channel只与Buffer缓冲区交互;
为了让大家不被高并发与大量连接、I/O处理问题所困扰,动力节点推出了【NIO高效处理模型应用教程】。
JavaNIO在线观看:
https://www.bilibili.com/video/BV1uq4y1j7Kv
JavaNIO资料下载:
本套视频基本内容
1. NIO的新特性
2. 如何使用这些特性来提升你所写代码的执行效率
3. 如何才能充分挖掘新的I/O特性所具备的各种潜能
4. 剖析程序员所面临的有代表性的I/O问题
本课程采用PDT4J教学法,通过案例让大家学会如何使用这些功能来解决现实工作中常常遇到的I/O问题;
----------------------------------------------------
适应人群:
至少学完了Java SE,对NIO编程感兴趣,或者是有工作经验的人群。
----------------------------------------------------
课程目录:
第一章 NIO概述
1-1 程序读取数据模型
1-2 NIO与传统IO的区别
第二章 NIO之Buffer
2-1 缓冲区的常用属性
2-2 Buffer常用的API
2-3 演示Buffer的基本操作
2-4 缓冲区的批量传输
2-5 缓冲区创建的两种方式
2-6 缓冲区的复制与分隔
2-7 直接字节缓冲区
第三章 NIO之Channel
3-1 Channel概述
3-2 Scatter与Gather
3-3 FileChannel内存映射文件
3-4 FileChannel双向读写
3-5 FileChannel读写文件时缓冲区固定大小
3-6 FileChannel通道与通道之间的传输
3-7 Gather代码演示
3-8 SeverSocketChannel服务器
3-9 SocketChannel客户端
3-10 DatagramChannel数据接收端
3-11 DatagramChannel数据发送端
3-12 Pipe管道
第四章 NIO之Selector
4-1 Selector选择器基础1
4-2 Selector选择器基础2
4-3 SelectionKey选择键常用方法
4-4 使用选择器1
4-5 服务器端代码模板
4-6 使用selector开发服务器端
4-7 开发客户端
----------------------------------------------------