日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java网络方面

發布時間:2025/5/22 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java网络方面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在面試 有些概念懂 但是需要梳理一下 借著面試看看自己會多少.

1.網絡編程的同步 異步 阻塞 非阻塞?

同步:函數調用在沒有得到結果之前,不返回任何結果;

異步:函數調用在沒有得到結果之前,不返回任何結果,返回狀態值;

阻塞:函數調用在沒有得到結果之前,線程掛起,得到結果之后返回值。

非阻塞:函數調用在沒有得到結果之前,當前線程不會掛起,立即返回結果。

2.Java如何實現無阻塞方式的Socket編程?

NIO可以有效解決多線程服務器存在的線程開銷問題,NIO的多線程不是為了應對客戶端請求而獨立分配線程,

而是通過多線程充分利用CPU的處理能力和處理的時間,達到提高服務效果。

3.什么是Java序列化

為了保存內存中各種對象的狀態(也就是實例變量,而不是方法),并且可以把對象可以讀取出來,雖然可以通過方法保存對象狀態,java提供了對象

序列化機制更好的保存對象狀態(具體的對象序列化可以參照Hibernate二級緩存)

4.什么情況下需要序列化?序列化需要注意什么事情,如何實現Java序列化(串行化)?

Java對象序列化到文件或者數據庫中;

使用套接字在網絡上傳輸對象時需要進行序列化;

當希望RMI傳輸對象的時候;

序列化注意事情:

1).如果子類實現了序列化接口Sericalizable而父類未實現,父類必須提供一個無參構造函數,否則會拋出InvalidClassException異常。

2).類的靜態變量不會被序列化,因為這個靜態變量是類變量,而不是對象的。串行化保存的是是對象屬性,即非靜態的變量。

3.)Java序列化是為了節約磁盤空間,具有特定規則。

4).序列化到同一文件,如果修改了相同對象的屬性再次保存時,因此只保存第二次的引用,讀取第一次的存儲。

?

5.Java有那幾種流?JDK提供哪些接口可以繼承?

Java提供的流對象

InputStram 字節輸入流 OutputStream 字節輸出流 Reader 字符輸入流 Writer 字符輸出流

按流向劃分:

輸出: 輸出字節流 OutputStraam 輸出字符流 Writer

輸入: 輸入字節流InputStream 輸入字符流 Reder

按照傳輸單位劃分:

字節流:8位 一個比特 一般情況下圖片 等是二進制文件

字節流:16位 兩個比特

6.用Java Socket編程

比較典型的Java Socket編程,發送請求后,等待服務器響應。 (這個過程存在阻塞方法)

大概過程

1.創建一個Socket實例,構造函數先遠處服務器域名和端口 簡歷TCP連接

2.通過IO流與服務器建立連接(這個地方存在阻塞方法)

3.IO流中讀取數據 并且 Socket關閉連接;

?

服務器的構建模型

1.創建一個ServerSocket端口監聽,設置監聽端口,用于獲取TCP連接

2.重復執行(whlie(true))監聽狀態一直持續

3.調用ServerSocket 的accept()方法,返回一個客戶端連接實例

4.為返回的Socket創建一個新的線程,用于進行線程的服務。

5.通訊完成,關閉Socket的close()

7.TCP有連接時候有三次握手?斷開連接有幾次握手?

? ? ? ? ? ? ?客戶端? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?服務器

? ? ? ? ? ? ? | (發送請求 i)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|

? ? ? ? ? ? ? |? ? ? ? ? ? ? ? ? ?--------------->? (i)? ? ? ? ? ? ? ? ?|(創建j,并且i+1)

? ? ? ? ? ? ?|? ? ? ? ? ? ? ? ? <---------------(j,i+1)? ? ? ? ? ? ? ?|

? ? ? ? ? ? ?| (獲取 j,i+1) 并且(j+1,i+)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|

? ? ? ? ? ? ?|? ? ? ? ? ? ? ? ? ? -------------->(j+1,i+1)? ? ? ? ? |(獲取j+1,i+1) 完成握手

seq 是包本身的序列號 ack是確認連接

一次釋放 斷開連接請求 確認斷開連接

轉載于:https://www.cnblogs.com/ad-zhou/p/9823121.html

總結

以上是生活随笔為你收集整理的Java网络方面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。