您好,登錄后才能下訂單哦!
這篇文章主要講解了“java中io和nio的區別是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java中io和nio的區別是什么”吧!
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的區別是什么”的內容了,經過本文的學習后,相信大家對java中io和nio的區別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。