更新時間:2021-07-02 來源:黑馬程序員 瀏覽量:
NIO是為替代傳統(tǒng)標準的I/O而出現(xiàn)的。與標準的IO相比,NIO提供了一種與I/O不同的工作方式。NIO采用內(nèi)存映射文件的方式來處理輸入/輸出,它將文件或文件的一段區(qū)域映射到內(nèi)存中,這樣就可以像訪問內(nèi)存一樣來訪問文件了。
在標準IO中,使用的是字節(jié)流和字符流,而在NIO中,使用的是通道(Channel)和緩沖區(qū)(Buffer)。數(shù)據(jù)總是從通道讀入緩沖區(qū),或從緩沖區(qū)寫入通道。
在Java API中,與NIO相關的包介紹如下:
● java.nio:主要包含各種與Buffer相關的類。
● java.nio.channels:主要包含與Channel和Selector(多線程相關選擇器)相關的類。
● java.nio.channels.spi:主要包含與Channel相關的服務提供者編程接口
● java.nio.charset:主要包含與字符集相關的類。
● java.nio.charset.spi:主要包含與字符集相關的服務提供者編程接口。
NIO主要有三大核心部分:Buffer、Channel和Selector。其中Buffer可以被看成是一個容器,其本質是一個數(shù)組緩沖區(qū),讀入或寫出到Channel中的所有對象都會先放在Buffer中;Channel是對傳統(tǒng)的輸入/輸出的模擬,在NIO中,所有的數(shù)據(jù)都需要通過通道流的形式傳輸;Selector(選擇器)用于監(jiān)聽多個通道的事件(例如:連接打開、數(shù)據(jù)到達等),主要用于多線程處理。
【AI設計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應用開發(fā)-Java】畢業(yè)當天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19