毎日いくつかの Java 面接の質問: IO フロー (5 日目)


フレンドリーなリマインダー

後ろの質問は非常に退屈ですが、いくつかの劇的なシーンや物語の登場人物が追加され、記憶が深まります。PS: 記事ディレクトリをクリックすると、記事の指定された場所に直接ジャンプします。

第5幕、

シーン1) ストリート

[ぼろぼろの老人、掃除婦、インタビュアー ラオ・ワン]

ボロボロの服を着た老人: 「Nokia には申し訳ないけど、Java のオファーがないのが心配です。」

Lao Wang: この老人には、「老人、1. Java にはストリームの種類が何種類ありますか? JDK では、ストリームの種類ごとに継承する抽象クラスがいくつか用意されています。どのようなクラスなのか教えてください。

ぼろぼろの老人:ストリームには、バイト ストリームと文字ストリームの 2 種類があります。バイト ストリームは、InputStream と OutputStream から継承し、文字ストリームは Reader と Writer から継承します。IO 操作に関連する他のクラスは、上記の 4 つの抽象クラスから派生します。バイト関連: FileInputStream、FileOutputStream クラス、文字関連: BufferedReader、BufferedWriter クラスなど
ここに画像の説明を挿入します
ぼろぼろの男: なんて老人なんだ、私は今年まだ 30 歳だけど、会社は従業員を解雇し、未完成の家を買ったのに、こんな状況になってしまったんだ。

ラオ・ワン: 私は実は先輩です。早く聞いてください: 兄さん、2. 連載とは何ですか? 連載を達成する方法は何ですか? Serializable インターフェイスの役割を説明してください。

ぼろぼろの男: 私を NPC だと思っていますか? 次々と質問が。
① オブジェクトは単にメモリに保存されるのではなく、シリアル化技術によって Java オブジェクトがバイト ストリームに変換され、バイナリ バイトで構成される配列の文字列に転送され、このバイナリ データがディスクまたは伝送ネットワークに保存されます。逆シリアル化を通じてバイト ストリームから Java オブジェクトを復元し、オブジェクトの永続性を実現します。
②jre 自体がこのサポートを提供します。転送されたオブジェクトはシリアライズ可能なインターフェイスを実装する必要があります。このインターフェイスはマーク インターフェイスであり、実装する必要があるメソッドはありません。シリアライズ可能な実装は、オブジェクトがシリアル化できることをマークするためのものであり、javac がコンパイルできるようにするためのものです。 OutputStreamのwriteObjectメソッドで操作できるように特別な処理を行うのがシリアル化です。

ラオ・ワン: 君はよく知っているのに、解雇されたんだね。では、3.java の io と nio の違いは何でしょうか?

ぼろぼろの男:若者ほどではない
①Java NIO と IO の最初の最大の違いは、IO はストリーム指向であり、NIO はバッファ指向であることです。IO ストリーム指向とは、すべてのワードが読み取られるまでストリームから一度に 1 つ以上のバイトを読み取ることを意味します。セクションでは、それらは異なります。どこにでもキャッシュされます。
② Java IO の各種ストリームがブロックされる。Java NIO はノンブロッキング モードです。IO をブロックするには、各接続をスレッドで処理する必要があります。スレッド プールを処理に使用することはできず、処理が完了する前にスレッドを終了することはできません。接続数が多くない場合は、従来の IO 書き込みの方が簡単で便利です。接続数が多くなるとリソースが不足します。ノンブロッキング IO は、スレッド プールを使用して処理できます。ノンブロッキング IO 処理接続は非同期であるためです。接続がサーバーにリクエストを送信すると、サーバーはその接続リクエストをリクエスト「イベント」として扱い、その「イベント」を対応する関数に割り当てて処理します。この処理関数をスレッドに入れて実行し、実行後にスレッドを返すことができます。このようにして、1 つのスレッドで複数のイベントを非同期に処理できます。
③ セレクタに関しては、Java IO にはセレクタがありませんが、NIO には複数の入力チャネルを別のスレッドで監視できるセレクタがあります。セレクタを使用して複数のチャネルを登録し、別のスレッドを使用してチャネルを「選択」できます。処理可能な入力がすでに存在するか、書き込みの準備ができているチャンネルを選択します。この選択メカニズムにより、単一のスレッドで複数のチャネルを簡単に管理できるようになります。

Lao Wang: とても複雑なので、理解できない場合は、まず暗記してください。

ボロボロの服を着た男「そんなことは関係ないよ、若者よ。若い時に手に入れられなかったものは、やがて一生あなたを罠にはめることになる。老後の栄光も、いつかは一つのことで解決されるだろう」または 1 つのこと。すぐに起こしてください。」

おすすめ

転載: blog.csdn.net/baomingshu/article/details/132947397