大家肯定了解Java IO, 但是對于NIO一般是陌生的,而現(xiàn)在使用到NIO的場景越來越多,很多技術(shù)框架或多或少都會(huì)使用NIO技術(shù),如Tomcat,Jetty。

學(xué)習(xí)和掌握NIO技術(shù)已經(jīng)不是一個(gè)JAVA攻城獅的加分技能,而是一個(gè)必備技能。

Java NIO概述

早期程序受CPU影響較大,隨著CPU處理能力的提升,現(xiàn)在的程序性能更多受I/O操作的影響, 其實(shí)各大操作系統(tǒng)對I/O操作做了很多性能的改進(jìn),但是JVM為了保證java程序在各種平臺(tái)上運(yùn)行效果一致,把各種操作系統(tǒng)對I/O性能的提升給屏蔽了, 使得Java在I/O領(lǐng)域一直處于劣勢;

Java雖然有一套完備的I/O類,但是需要處理大量數(shù)據(jù)時(shí),卻可能對執(zhí)行效率造成致命傷害,傳統(tǒng)的I/O也不具備當(dāng)今大多數(shù)操作系統(tǒng)具備的常用功能,如文件鎖定,非阻塞I/O,內(nèi)存映射等, 所以Java在JDK1.4中引用了NIO,可以最大限度的滿足Java程序I/O的需求;

在NIO中有三大核心組件:

  • Channel
  • Buffer
  • Selector

傳統(tǒng)的IO面向流的,每次可以從流中讀取一個(gè)或多個(gè)字節(jié),只能向后讀取,不能向前移動(dòng),NIO是面向緩沖區(qū)的,把數(shù)據(jù)讀到一個(gè)緩沖區(qū)中,可以在緩沖區(qū)中向前/向后移動(dòng),增加了程序的靈活性。

在NIO中,所有的數(shù)組都需要通過Channel傳輸,通道可以直接將一塊數(shù)據(jù)映射到內(nèi)存中。Channel是雙向的,不僅可以讀 取數(shù)據(jù), 還能保存數(shù)據(jù),程序不能直接讀寫Channel通道,Channel只與Buffer緩沖區(qū)交互;

為了讓大家不被高并發(fā)與大量連接、I/O處理問題所困擾,動(dòng)力節(jié)點(diǎn)推出了【NIO高效處理模型應(yīng)用教程】。

JavaNIO在線觀看:

??https://www.bilibili.com/video/BV1uq4y1j7Kv??

JavaNIO資料下載:

??http://www.bjpowernode.com/?51cto??

本套視頻基本內(nèi)容

1.?NIO的新特性

2.?如何使用這些特性來提升你所寫代碼的執(zhí)行效率

3.?如何才能充分挖掘新的I/O特性所具備的各種潛能

4.?剖析程序員所面臨的有代表性的I/O問題

本課程采用PDT4J教學(xué)法,通過案例讓大家學(xué)會(huì)如何使用這些功能來解決現(xiàn)實(shí)工作中常常遇到的I/O問題;

----------------------------------------------------

適應(yīng)人群:

至少學(xué)完了Java SE,對NIO編程感興趣,或者是有工作經(jīng)驗(yàn)的人群。

----------------------------------------------------

課程目錄:

第一章 NIO概述

1-1 程序讀取數(shù)據(jù)模型

1-2 NIO與傳統(tǒng)IO的區(qū)別

第二章 NIO之Buffer

2-1 緩沖區(qū)的常用屬性

2-2 Buffer常用的API

2-3 演示Buffer的基本操作

2-4 緩沖區(qū)的批量傳輸

2-5 緩沖區(qū)創(chuàng)建的兩種方式

2-6 緩沖區(qū)的復(fù)制與分隔

2-7 直接字節(jié)緩沖區(qū)

第三章 NIO之Channel

3-1 Channel概述

3-2 Scatter與Gather

3-3 FileChannel內(nèi)存映射文件

3-4 FileChannel雙向讀寫

3-5 FileChannel讀寫文件時(shí)緩沖區(qū)固定大小

3-6 FileChannel通道與通道之間的傳輸

3-7 Gather代碼演示

3-8 SeverSocketChannel服務(wù)器

3-9 SocketChannel客戶端

3-10 DatagramChannel數(shù)據(jù)接收端

3-11 DatagramChannel數(shù)據(jù)發(fā)送端

3-12 Pipe管道

第四章 NIO之Selector

4-1 Selector選擇器基礎(chǔ)1

4-2 Selector選擇器基礎(chǔ)2

4-3 SelectionKey選擇鍵常用方法

4-4 使用選擇器1

4-5 服務(wù)器端代碼模板

4-6 使用selector開發(fā)服務(wù)器端

4-7 開發(fā)客戶端

----------------------------------------------------