2020全新Java面試題-網絡

1、http 回應碼 301 和 302 代表的是什麼?有什麼區別?
答:301,302 都是HTTP狀態的編碼,都代表某個URL發生了轉移。
區別:
301 redirect: 301 代表永久性轉移(Permanently Moved)。
302 redirect: 302 代表暫時性轉移(Temporarily Moved )。
(推薦教學:java入門程式)
#2、forward 與 redirect 的差異?
Forward和Redirect代表了兩種請求轉送方式:直接轉送和間接轉送。
直接轉發方式(Forward),客戶端和瀏覽器只發出一次請求,Servlet、HTML、JSP或其它資訊資源,由第二個資訊資源回應該請求,在請求物件request中,保存的物件對於每個資訊資源是共享的。
間接轉發方式(Redirect)實際上是兩次HTTP請求,伺服器端在回應第一次請求的時候,讓瀏覽器再向另外一個URL發出請求,從而達到轉發的目的。
舉個通俗的例子:
直接轉發就相當於:「A找B借錢,B說沒有,B去找C借,借到借不到都會把訊息傳遞給A」;
間接轉發就相當於:「A找B借錢,B說沒有,讓A去找C借」。
(相關影片教學推薦:java影片教學)
#3、簡述 tcp 和 udp的差別?
TCP面向連線(如打電話要先撥號建立連線);UDP是無連線的,也就是在傳送資料之前不需要建立連線。
TCP提供可靠的服務。也就是說,透過TCP連接傳送的數據,無差錯,不遺失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付。
Tcp透過校驗和,重傳控制,序號標識,滑動視窗、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。
UDP具有較好的即時性,工作效率比TCP高,適用於對高速傳輸和即時性有較高的通訊或廣播通訊。
每一條TCP連線只能是點到點的;UDP支援一對一,一對多,多對一和多對多的互動通訊。
TCP對系統資源需求較多,UDP對系統資源要求較少。
4、tcp 為什麼要三次握手,兩次不行嗎?為什麼?
為了實現可靠資料傳輸, TCP 協定的通訊雙方, 都必須維護一個序號, 以標識發送出去的資料包中, 哪些是已經被對方收到的。三次握手的過程即是通訊雙方互相告知序號起始值, 並確認對方已經收到了序號起始值的必經步驟。
如果只是兩次握手, 至多只有連接發起方的起始序號能被確認, 另一方選擇的序號則得不到確認。
5、說一下 tcp 黏包是怎麼產生的?
(1)發送方產生黏包
採用TCP協定傳輸資料的客戶端與伺服器經常是保持一個長連接的狀態(一次連線發送一次資料不存在粘包),雙方在連接不斷開的情況下,可以一直傳輸資料;但當發送的資料包過於的小時,那麼TCP協定預設的會啟用Nagle演算法,將這些較小的資料包進行合併發送(緩衝區資料發送是一個堆壓的過程);這個合併過程就是在發送緩衝區中進行的,也就是說資料發送出來它已經是黏包的狀態了。

(2)接收方產生黏包
接收方採用TCP協定接收資料時的過程是這樣的:資料到底接收方,從網絡模型的下方傳遞至傳輸層,傳輸層的TCP協定處理是將其放置接收緩衝區,然後由應用層來主動獲取(C語言用recv、read等函數);這時會出現一個問題,就是我們在程式中呼叫的讀取資料函數不能及時的把緩衝區中的資料拿出來,而下一個資料又到來並有一部分放入的緩衝區末尾,等我們讀取資料時就是一個黏包。 (放資料的速度> 應用層拿資料速度)


#如果您想知道更多面試題,可以存取java面試題。
以上是2020全新Java面試題-網絡的詳細內容。更多資訊請關注PHP中文網其他相關文章!
熱AI工具
Undress AI Tool
免費脫衣圖片
Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片
AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。
Clothoff.io
AI脫衣器
Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!
熱門文章
熱工具
記事本++7.3.1
好用且免費的程式碼編輯器
SublimeText3漢化版
中文版,非常好用
禪工作室 13.0.1
強大的PHP整合開發環境
Dreamweaver CS6
視覺化網頁開發工具
SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)
撰寫PHP評論的提示
Jul 18, 2025 am 04:51 AM
寫好PHP註釋的關鍵在於明確目的與規範,註釋應解釋“為什麼”而非“做了什麼”,避免冗餘或過於簡單。 1.使用統一格式,如docblock(/*/)用於類、方法說明,提升可讀性與工具兼容性;2.強調邏輯背後的原因,如說明為何需手動輸出JS跳轉;3.在復雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標記待辦事項與問題,便於後續追踪與協作。好的註釋能降低溝通成本,提升代碼維護效率。
通過評論提高可讀性
Jul 18, 2025 am 04:46 AM
寫好註釋的關鍵在於說明“為什麼”而非僅“做了什麼”,提升代碼可讀性。 1.註釋應解釋邏輯原因,例如值選擇或處理方式背後的考量;2.對複雜邏輯使用段落式註釋,概括函數或算法的整體思路;3.定期維護註釋確保與代碼一致,避免誤導,必要時刪除過時內容;4.在審查代碼時同步檢查註釋,並通過文檔記錄公共邏輯以減少代碼註釋負擔。
編寫有效的PHP評論
Jul 18, 2025 am 04:44 AM
註釋不能馬虎是因為它要解釋代碼存在的原因而非功能,例如兼容老接口或第三方限制,否則看代碼的人只能靠猜。必須加註釋的地方包括複雜的條件判斷、特殊的錯誤處理邏輯、臨時繞過的限制。寫註釋更實用的方法是根據場景選擇單行註釋或塊註釋,函數、類、文件開頭用文檔塊註釋說明參數與返回值,並保持註釋更新,對複雜邏輯可在前面加一行概括整體意圖,同時不要用註釋封存代碼而應使用版本控制工具。
有效的PHP評論
Jul 18, 2025 am 04:33 AM
寫好PHP註釋的關鍵在於清晰、有用且簡潔。 1.註釋應說明代碼背後的意圖而非僅描述代碼本身,如解釋複雜條件判斷的邏輯目的;2.在魔術值、舊代碼兼容、API接口等關鍵場景添加註釋以提升可讀性;3.避免重複代碼內容,保持簡潔具體,並使用標準格式如PHPDoc;4.註釋需與代碼同步更新,確保准確性。好的註釋應站在他人角度思考,降低理解成本,成為代碼的理解導航儀。
PHP開發環境設置
Jul 18, 2025 am 04:55 AM
第一步選擇集成環境包XAMPP或MAMP搭建本地服務器;第二步根據項目需求選擇合適的PHP版本並配置多版本切換;第三步選用VSCode或PhpStorm作為編輯器並搭配Xdebug進行調試;此外還需安裝Composer、PHP_CodeSniffer、PHPUnit等工具輔助開發。
PHP評論語法
Jul 18, 2025 am 04:56 AM
PHP註釋有三種常用方式:單行註釋適合簡要說明代碼邏輯,如//或#用於當前行解釋;多行註釋/*...*/適合詳細描述函數或類的作用;文檔註釋DocBlock以/**開頭,為IDE提供提示信息。使用時應避免廢話、保持同步更新,並勿長期用註釋屏蔽代碼。
PHP比較操作員
Jul 18, 2025 am 04:57 AM
PHP比較運算符需注意類型轉換問題。 1.使用==僅比較值,會進行類型轉換,如1=="1"為true;2.使用===需值與類型均相同,如1==="1"為false;3.大小比較可作用於數值和字符串,如"apple"
了解PHP評論
Jul 18, 2025 am 04:24 AM
PHP注释是代码中用于解释逻辑、标记任务或临时屏蔽代码的部分,不被服务器执行。其核心作用包括:1.提高代码可读性,便于他人和未来的自己快速理解;2.支持两种格式:单行注释(//或#)和多行注释(//);3.常见用途涵盖函数说明、复杂逻辑解释、TODO标记及调试时禁用代码;4.有效注释应避免重复代码、说明原因而非操作、保持简洁并在必要处添加版本记录,从而显著提升代码维护效率。


