私はそれらがお互いにどれほど異なるかをよく理解していないので、これらの2つのパッケージに関していくつか質問があります。
Googleを少し調べた後、OracleはJDK7リリースの一部としてNIO
パッケージをより新しく強化されたNIO.2
パッケージで更新することにしたようです。
NIO
パッケージのパフォーマンスはNIO.2
パッケージと比較してどうですか?NIO
からNIO.2
への大きな変更点は何ですか? (例:新しいメソッド、機能)NIO
パッケージを更新する必要があったのはなぜですか?NIO.2
は、最近のNIO
パッケージと同義語ですか?コードでレガシーパッケージを使用したいわけではありません。これに興味があります。それらの違いを教えてください?
Javaは、ファイルシステムにアクセスするJava.io
パッケージでFile
クラスを提供することから始めました。このオブジェクトはファイル/ディレクトリを表し、ファイル/ディレクトリが存在するかどうかの確認、プロパティの取得、削除などの操作を実行できました。ただし、いくつかの欠点がありました。いくつか例を挙げると:
boolean
を返す多くのメソッドを定義しました。想像できるように、エラーの場合、例外をスローするのではなく、false
が返されました。実際、開発者は失敗した理由を知る方法がありませんでした。これらの問題を克服するために、Java.nioパッケージがJava 4で導入されました。主な機能は次のとおりです。
Java 7では、Java.nio.fileパッケージが導入され、シンボリックリンク、ファイル属性アクセスの処理のサポートが向上し、特にパス、パス、ファイルなどのクラスによるファイルシステムの拡張をサポートします。 。 Java.nio.fileパッケージの説明 を参照して、詳細を確認したい場合があります。
これを考慮して:
NIOからNIO.2への大きな変更点は何ですか? (例:新しいメソッド、機能)?
それらは異なる目的に役立ちます。大きな変更を指摘するには、すべての新しいパッケージJava.nio.file
を調べてください。
元のNIOパッケージを更新する必要があったのはなぜですか?
しませんでした。更新ではなく、新しいパッケージが導入されました。
NIO.2は最近のNIOパッケージと同義語ですか? NIOパッケージのパフォーマンスはNIO.2パッケージと比較してどうですか?
いいえ、それらは同義ではありません。また、それらは異なる目的に役立つため、それらの間でパフォーマンスを比較することはあまり意味がありません。 NIOは、ファイル管理に重点を置いた、より抽象的な低レベルのデータI/OおよびNIO2です。
お役に立てれば。
[参考文献:Oracle Certified Professional Java SE7-S.G. GaneshおよびTushar Sharmaによる包括的なOCJP7認定ガイド-第9章]
NIO.2が導入されました 非同期I/O。
非同期I/Oは、NIOでサポートされていない非ブロッキングI/Oへのアプローチです。
NIO:セレクター/リアクターパターン
NIO.2:完了ハンドラー/ proactor pattern
したがって、Windowsの場合、 NIO.2はI/O完了ポートを使用 であり、これによりパフォーマンスが向上します。ただし、サーバー側でWindowsを使用している人はいないため、誰も知らない。