不願看你迷茫,把清華畢業大佬整理的Java網絡編程面試題分享給你

前言

大家平時在面試開發崗位的時候,是不是總覺得面試官問的問題,都感覺是在刁難自己呢?明明自己準備的知識都很充足,爲什麼偏偏問的都不是自己所掌握的?小編在這裏告訴大家,你們就是缺少對應的面試題做指導,沒有一個方向。面試造火箭,入職擰螺絲,所以說,面試對大家來說是非常重要的。

小編應大家的考慮,給大家分享清華畢業大佬所整理的Java網絡編程面試題。因爲內容實在是有點多,小編在這裏只給大家把部分內容截圖出來介紹,每小節都有更加細化的內容。

首先給大家分享Java網絡編程面試題的問題大全目錄

在這裏插入圖片描述

其次呢,是幾個小知識點問題及答案的介紹

1、tcp和udp的區別
TCP:是面向連接的流傳輸控制協議,具有高可靠性,確保傳輸數據的正確性,有驗證重發機制,因此不會出現丟失或亂序。

UDP:是無連接的數據報服務,不對數據報進行檢查與修改,無須等待對方的應答,會出現分組丟失、重複、亂序,但具有較好的實時性,UDP段結構比TCP的段結構簡單,因此網絡開銷也小。

2、tcp連接建立的時候3次握手,斷開連接的4次握手的具體過程

  1. 建立連接採用的3次握手協議,具體是指:

l 第一次握手是客戶端connect連接到server

l 第二次server accept client的請求之後,向client端發送一個消息,相當於說我都準備好了,你連接上我了

l 第三次 就是client向server發送的,就是對第二次握手消息的確認。之後client和server就開始通訊了。

2.斷開連接的4次握手,具體如下:

l 斷開連接的一端發送close請求是第一次握手

l 另外一端接收到斷開連接的請求之後需要對close進行確認,發送一個消息,這是第二次握手

l 發送了確認消息之後還要向對端發送close消息,要關閉對對端的連接,這是第3次握手

l 而在最初發送斷開連接的一端接收到消息之後,進入到一個很重要的狀態time_wait狀態,這個狀態也是面試官經常問道的問題,最後一次握手是最初發送斷開連接的一端接收到消息之後。對消息的確認。
3、什麼是阻塞IO?什麼是非阻塞IO?
在瞭解阻塞IO和非阻塞IO之前,先看下一個具體的IO操作過程是怎麼進行的。

通常來說,IO操作包括:對硬盤的讀寫、對socket的讀寫以及外設的讀寫。

當用戶線程發起一個IO請求操作(本文以讀請求操作爲例),內核會去查看要讀取的數據是否就緒,對於阻塞IO來說,如果數據沒有就緒,則會一直在那等待,直到數據就緒;對於非阻塞IO來說,如果數據沒有就緒,則會返回一個標誌信息告知用戶線程當前要讀的數據沒有就緒。當數據就緒之後,便將數據拷貝到用戶線程,這樣才完成了一個完整的IO讀請求操作,也就是說一個完整的IO讀請求操作包括兩個階段:

1)查看數據是否就緒;

2)進行數據拷貝(內核將數據拷貝到用戶線程)。

那麼阻塞(blocking IO)和非阻塞(non-blocking IO)的區別就在於第一個階段,如果數據沒有就緒,在查看數據是否就緒的過程中是一直等待,還是直接返回一個標誌信息。

Java中傳統的IO都是阻塞IO,比如通過socket來讀數據,調用read()方法之後,如果數據沒有就緒,當前線程就會一直阻塞在read方法調用那裏,直到有數據才返回;

而如果是非阻塞IO的話,當數據沒有就緒,read()方法應該返回一個標誌信息,告知當前線程數據沒有就緒,而不是一直在那裏等待。

10、Nio buffer 的內部結構是什麼?

在這裏插入圖片描述
15、網絡編程的一般步驟
對於TCP連接:

1.服務器端
在這裏插入圖片描述
32、簡單說一下http協議?
HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。

HTTP是一個基於TCP/IP通信協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。

HTTP 工作原理

HTTP協議工作於客戶端-服務端架構上。瀏覽器作爲HTTP客戶端通過URL向HTTP服務端即WEB服務器發送所有請求。

Web服務器有:Apache服務器,Nginx,IIS服務器(Internet Information Services)等。

Web服務器根據接收到的請求後,向客戶端發送響應信息。

HTTP默認端口號爲80,但是你也可以改爲8080或者其他端口。

HTTP三點注意事項:

l HTTP是無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。

l HTTP是媒體獨立的:這意味着,只要客戶端和服務器知道如何處理的數據內容,任何類型的數據都可以通過HTTP發送。客戶端以及服務器指定使用適合的MIME-type內容類型。

l HTTP是無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。在這裏插入圖片描述
34、描述一下http協議服務器響應報文有哪些?
HTTP響應也由四個部分組成,分別是:

l 狀態行

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網絡編程面試題
在這裏插入圖片描述
在這裏插入圖片描述
由於篇幅限制,小編在這裏就不做過多的介紹啦。在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章