首頁  >  文章  >  Java  >  java中io和nio的差別是什麼

java中io和nio的差別是什麼

PHPz
PHPz轉載
2023-05-13 15:04:062714瀏覽

1、Java IO和NIO之間第一個差異是,IO是面向流的,NIO是面向緩衝區的。

Java IO面向流意味著每次都能從流中讀取一個或多個位元組。從流中讀取多少位元組完全取決於程式設計師。這些位元組無法快取到任何地方;也就是說,你不能從流中前後移動資料。如果你真的需要移動數據,你需要先在緩衝區快取這些數據。

Java NIO對Buffer的看法稍微不同。當資料讀取到buffer中時,buffer將在以後處理。如果您需要,您可以在buffer中移動資料;這使程式設計師在處理時更加靈活。但是,您必須檢查buffer中是否包含您需要處理的所有資料。此外,您必須確保讀取資料到達buffer時,您無法覆蓋未處理的資料。

阻塞與非阻塞IO

2、Java IO中的各種流被堵塞,Java NIO是非阻塞模式保證執行緒要求從channel中讀取取數據。

Java IO中的各種流被堵塞,也就是說,當呼叫read()方法和write()方法時,執行緒會被堵塞,直到資料被讀取或完全寫入。在此期間,處理流程的線程將無法完成。

Java NIO非阻塞模式保證執行緒要求從channel讀取數據,直到此時channel才能使用,或者如果此時沒有資料可用,就什麼也不做。而不是保存阻塞,直到資料可以讀取,這裡執行緒可以做其他事情。

java基本資料型別有哪些

Java的基本資料型別分為:

1、整數型,用來表示整數的資料型別。

2、浮點型,用來表示小數的資料型別。

3、字元類型,字元類型的關鍵字是「char」。

4、布林類型,是表示邏輯值的基本資料型別。

以上是java中io和nio的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除