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

前言

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

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

首先給大家分享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 的內部結構是什麼?

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

15、網絡編程的一般步驟

對於TCP連接:

1.服務器端

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

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協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

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

34、描述一下http協議服務器響應報文有哪些?

HTTP響應也由四個部分組成,分別是:

l 狀態行

l 消息報頭

l 空行

l 響應正文


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

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

最後呢,分享的是Java網絡編程面試題

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


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

由於篇幅限制,小編在這裡就不做過多的介紹拉,需要文檔的小夥伴,就可以轉發關注一下小編,私信小編“學習”來得到獲取方式吧!

感謝大家的配合與信任,努力成就更好的自己。

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


分享到:


相關文章: