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的基本資料型別分為:
1、整數型,用來表示整數的資料型別。
2、浮點型,用來表示小數的資料型別。
3、字元類型,字元類型的關鍵字是「char」。
4、布林類型,是表示邏輯值的基本資料型別。
以上是java中io和nio的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!