あなたは混乱して見えるようにしたくない、あなたへのJavaネットワークプログラミングのインタビューの質問を終え共有清華大学の大学院ギャング

序文

インタビュアーは常に質問をしていると感じていないとき、それは通常、就職の面接を開発し、感触は自分のために物事を困難にしていますか?彼らの処分を依頼しない理由を明らかに自分の知識を準備し、十分なされていますか?小扁は、ここであなたは、ない方向を導くために、対応する面接の質問に欠けている、あなたを伝えるために。インタビュー製ロケット、エントリは、私たちのすべてのための面接は非常に重要であるように、ネジを締めます。

清華大学を卒業ギャングスターは、Javaネットワークプログラミングのインタビューの質問を照合して小扁は、私たちが共有するために、検討すべきです。コンテンツがもう少しあるので、ここでの小さなシリーズのみ導入からあなたのスクリーンショットの一部を与えるために、各セクションでは、より詳細な内容を持っています。

Javaのネットワークプログラミングのインタビューの質問Daquanのディレクトリを共有するための最初の質問

ここに画像を挿入説明

第二に、それはいくつかの小さな知識の質問と回答を導入することです

1、TCPおよびUDP区別
TCP:伝送制御プロトコルデータ伝送、検証再送機構の正確確実に信頼性の高いストリーム指向の接続、、、そうないが失われるかスクランブルされています。

UDP:コネクションレスのデータグラムサービス、データをチェックし、修正することが報告されていない、相手の応答を待たずに、そこに、パケットロスも複製、順序のうち、より良いリアルタイム、UDPセグメント構造のTCPセグメント構造よりますシンプル、ネットワークのオーバーヘッドが小さいので。

図2に示すように、TCP接続確立ハンドシェーク3、特に4ウェイハンドシェイク手順切断

  1. 特に、使用される接続を確立するための3ウェイハンドシェークプロトコル:

最初のハンドシェイクLは、サーバーに接続するクライアントを接続します

L第二サーバがクライアントの要求を受け入れ、私は準備ができていたと言うと同等の、クライアント側にメッセージを送信した後、あなたは私を接続します

L第3のクライアントがサーバーに送信され、それは第二のハンドシェイク応答メッセージのためのものです。クライアントとサーバーの通信を開始した後。

2。以下のように、4ウェイハンドシェイク接続を切断してください。

Lの最後には、最初に握手を切断するクローズ要求を送信します

Lは、切断するために、受信した接続確認要求に対する他端終了後に実行する必要がある第二のハンドシェイクであるメッセージを送信します

Lは、端末との接続を閉じるために、ピア近いメッセージに肯定応答メッセージを送信した後、これは最初の3ウェイハンドシェイクで送信します

Lメッセージは元々切断メッセージが受信され送信される最初の送信の端部はインタビュアーが質問をすることが多い状態TIME_WAIT重要状態に、切断した後、受信された最後のハンドシェイクの終了であります後に。メッセージの確認応答。
3.どのようなIOをブロックしていますか?ノンブロッキングIOとは何ですか?
ブロッキングとノンブロッキング・IO IOを確認する前に、特定のプロセスの次の外観は、IO操作が行わ方法です。

一般的に、IO操作があって読み、ハードディスクへの書き込み、読み取りと書き込みの読み取りと書き込みソケットの周辺機器。

ときに、ユーザーが開始スレッドIO要求操作(紙は、例えば、要求操作を読んで)、カーネルは、データの準備ができていない場合、我々はデータまでその上で待たなければならない、IOをブロックするため、データが読み込み可能かどうかを確認するために行きます準備ができて、データの準備ができていない場合はIOを非ブロックのために、それはデータを読み取るために、現在のスレッドのユーザに知らせる戻りメッセージをマークする準備ができていません。データの準備ができたら、その完全なIOを完了するために、ユーザスレッドにコピーされたデータを置く要求を読んで、その手段は、完全なIOは、要求操作は、2つのフェーズで構成読んで:

1)データの準備ができているかどうかを確認してください。

ユーザカーネルスレッドにデータのコピー2)データコピー()。

ブロッキングように(IOブロッキング)との間の差非ブロッキング(IO非ブロッキング)データの準備ができていない場合、最初の段階は、プロセスは、データが準備を待っているかどうか、直接フラグ情報を返すようにすることです。

従来のJava IO IOは、read()メソッドを呼び出すと、ソケットを介してデータを読み取るために、例えば、ブロックされた後、データの準備ができていない場合は、データが返される前に存在するまでreadメソッドがを呼び出すまで、現在のスレッドはブロックされます。

それは、データの準備ができていないときに、読むこと、IOを非ブロックされている場合は()メソッドは、フラグ情報を返し、現在のスレッドのデータで準備ができていないことを通知し、そこに待機する必要はありません。

10.のNIOバッファの内部構造とは何ですか?

ここに画像を挿入説明
15、ステッププログラミング一般的なネットワーク
のTCP接続のために:

1.サーバー
ここに画像を挿入説明
32、httpプロトコルについて簡単に?
HTTPプロトコルであるワールド・ワイド・ウェブ(WWW)から使用されているハイパーテキスト転送略語プロトコル(ハイパーテキスト転送プロトコル):転送ハイパーテキスト転送プロトコルローカルブラウザに(WWW World Wide Web)サーバ。

HTTPはTCP / IP通信プロトコルに基づいたデータ(HTMLファイル、画像ファイル、クエリの結果など)を転送するために使用されます。

HTTPの作品

上のサーバアーキテクチャ - HTTPプロトコルは、クライアント上で動作します。WEBサーバであるHTTPクライアントのURLなどのブラウザは、HTTPを介してサーバにすべての要求を送信します。

Webサーバーがあります:Apacheサーバ、nginxのは、その上のサーバー(インターネットインフォメーションサービス)およびIISの。

Webサーバは、受信した要求に応じて、クライアントへの応答情報を送信します。

デフォルトのHTTPポート番号は80ですが、あなたはまた、8080または他のポートに変更することができます。

ノートへのHTTP三の事柄:

L HTTPはコネクションレスである:いいえ接続を意味しないと、処理を接続ごとに1つのだけの要求を制限することです。サーバがクライアントの要求を処理し、顧客の応答を受信した後、すなわち、切断。このようにして、送信時間を節約することができます。

リットルHTTPメディアの独立性:サーバがHTTP経由で送信できるデータの任意のタイプのデータ・コンテンツを処理する方法を知っている限り、クライアントとしてと、この手段。クライアントとサーバは、適切なMIMEタイプのコンテンツタイプを指定します。

HTTPプロトコルステートレスプロトコルである:L HTTPはステートレスです。いかなる状態は、トランザクション処理とメモリのためのプロトコルではありません。接続ごとに送信されるデータの量をもたらすことができる情報の前に必要なその後の処理は、それが再送信されなければならないことを状態手段の欠如は、増加された場合。一方、それはより速く、サーバーに応じて、以前の情報を必要としません。ここに画像を挿入説明
34、どのようなhttpプロトコルの応答パケットを説明しますか?
HTTPレスポンスはまた、すなわち4つの部分から構成されています。

ステータスラインL

Lメッセージヘッダ

lの空行

リットルのレスポンスボディここに画像を挿入説明

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

最後に、Javaのネットワークプログラミングのインタビューの質問共有する
ここに画像を挿入説明
ここに画像を挿入説明
ため、スペースの制約のを、大幅にあまりにも多くの友人を紹介しませんここに加速します。ここに画像を挿入説明

公開された85元の記事 ウォン称賛7 ビュー20000 +

おすすめ

転載: blog.csdn.net/Ppikaqiu/article/details/104776493