大家肯定了解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 開發客戶端
----------------------------------------------------