Java最新筆試題(附詳細答案

時(shí)間:2022-06-27 04:17:05 筆試 我要投稿
  • 相關(guān)推薦

2017年Java最新筆試題(附詳細答案)

  下述二叉樹(shù)中,哪一種滿(mǎn)足性質(zhì):從任一結點(diǎn)出發(fā)到根;本題主要考查了選項中出現的幾種樹(shù)的結構特點(diǎn);下面關(guān)于線(xiàn)程的敘述中,正確的是();一條tcp連接,主動(dòng)關(guān)閉的一方不可能出現的連接狀;CLOSE_WAIT;FIN_WAIT2;TIME_WAIT;FIN_WAIT1;1)當客戶(hù)端沒(méi)有主動(dòng)close的時(shí)候就斷開(kāi)連接,;1:這時(shí)候若客戶(hù)端斷開(kāi)的時(shí)候發(fā)送了FIN包,則服

2017年Java最新筆試題(附詳細答案)

  下述二叉樹(shù)中,哪一種滿(mǎn)足性質(zhì):從任一結點(diǎn)出發(fā)到根的路徑上所經(jīng)過(guò)的結點(diǎn)序列按其關(guān)鍵字有序():

  本題主要考查了選項中出現的幾種樹(shù)的結構特點(diǎn)。對于選項A,根據二叉排序樹(shù)的結構特點(diǎn)我們可以知道,二叉排序樹(shù)的中序遍歷結果是一個(gè)有序序列,而在中序遍歷中,父結點(diǎn)并不總是出現在孩子結點(diǎn)的前面(或后面),故該選項不正確。例如我們用關(guān)鍵字5,2,3建立一棵二叉排序樹(shù),則從結點(diǎn)3出發(fā)到根的路徑上所經(jīng)過(guò)的結點(diǎn)序列為3,2,5,并不是一個(gè)有序的序列。對于選項B,赫夫曼樹(shù)在后續的章節中會(huì )介紹,根據赫夫曼樹(shù)的結構特點(diǎn)我們可以知道,在赫夫曼樹(shù)中所有的關(guān)鍵字只出現在葉結點(diǎn)上,其非葉結點(diǎn)上并沒(méi)有關(guān)鍵字值,顯然不正確。對于選項C,AVL樹(shù)其本質(zhì)上也是一種二叉排序樹(shù),只不過(guò)是平衡化之后的二叉排序樹(shù),故該選項也是不正確的。例如我們用序列5,1,8,6,9建立一棵AVL樹(shù),從結點(diǎn)6出發(fā)到根的路徑上所經(jīng)過(guò)的結點(diǎn)序列為6,8,5,也不是一個(gè)有序的序列。對于選項D,堆的概念我們會(huì )在堆排序中給大家介紹,根據建堆的過(guò)程,不斷地把大者"上浮",將小者"篩選"下去,最終得到的正是一個(gè)從任一結點(diǎn)出發(fā)到根的路徑上所經(jīng)過(guò)的結點(diǎn)序列按其關(guān)鍵字有序的樹(shù)狀結構,故D是正確的。 本題中的A和C同時(shí)出現,沒(méi)有起到干擾的作用,因為AVL樹(shù)和二叉排序樹(shù)只是在平衡性上有區別,在結點(diǎn)的排列方式上沒(méi)有區別。

  下面關(guān)于線(xiàn)程的敘述中,正確的是()。 正確答案: C 你的答案: D (錯誤) 不論是系統支持線(xiàn)程還是用戶(hù)級線(xiàn)程,其切換都需要內核的支持 線(xiàn)程是資源的分配單位,進(jìn)程是調度和分配的單位 不管系統中是否有線(xiàn)程,進(jìn)程都是擁有資源的獨立單位 在引入線(xiàn)程的系統中,進(jìn)程仍是資源分配和調度分派的基本單位 A:用戶(hù)級線(xiàn)程,切換時(shí)不需要內核的支持 B:線(xiàn)程是資源調度和分配的單位,進(jìn)程是資源擁有的單位 C:對 D:引入線(xiàn)程后,線(xiàn)程才是資源分配和調度分派的基本單位 在引入線(xiàn)程前,進(jìn)程的兩個(gè)基本屬性是:1.可擁有資源的獨立單位。2.可獨立調度和分配的基本單位。 后來(lái)為了使多個(gè)程序更好的并發(fā)執行,人們把上述兩個(gè)屬性分開(kāi),引入線(xiàn)程作為可獨立調度和分配的基本單位。

  一條tcp連接,主動(dòng)關(guān)閉的一方不可能出現的連接狀態(tài)是() 正確答案: A 你的答案: A (正確)

  CLOSE_WAIT

  FIN_WAIT2

  TIME_WAIT

  FIN_WAIT1

  1)當客戶(hù)端沒(méi)有主動(dòng)close的時(shí)候就斷開(kāi)連接,即客戶(hù)端發(fā)送的fin丟失或者失。

  1:這時(shí)候若客戶(hù)端斷開(kāi)的時(shí)候發(fā)送了FIN包,則服務(wù)端將會(huì )處于CLOSE_WAIT狀態(tài);2: 這時(shí)候若客戶(hù)端斷開(kāi)的時(shí)候未發(fā)送FIN包,則服務(wù)端處還是顯示ESTABLISHED狀態(tài)

  2) 當client想要關(guān)閉它與server之間的連接。client(某個(gè)應用進(jìn)程)首先調用 close 主動(dòng)關(guān)閉連接,這時(shí)TCP發(fā)送一個(gè)FIN M;client端處于 FIN_WAIT1 狀態(tài)。

  3) 當server端接收到FIN M之后,執行被動(dòng)關(guān)閉。對這個(gè)FIN進(jìn)行確認,返回給client ACK。當server端返回給client ACK后,

  client處于 FIN_WAIT2 狀態(tài),server處于 CLOSE_WAIT 狀態(tài)。它的接收也作為文件結束符傳遞給應用進(jìn)程,因為FIN的接

  收 意味著(zhù)應用進(jìn)程在相應的連接上再也接收不到額外數據;

  4) 一段時(shí)間之后,當server端檢測到client端的關(guān)閉操作(read返回為0)。接收到文件結束符的server端調用close 關(guān)閉它的socket。這導致server端的TCP也發(fā)送一個(gè)FIN N;此時(shí)server的狀態(tài)為last――ack .

  5)當client收到來(lái)自server的FIN后 。 client端的套接字處于 TIME_WAIT 狀態(tài),它會(huì )向server端再發(fā)送一個(gè)ack確認,此時(shí)server端收到ack確認后,此套接字處于CLOSED狀態(tài)。

  介紹一下TCP連接建立與關(guān)閉過(guò)程中的狀態(tài)。TCP連接過(guò)程是狀態(tài)的轉換,促使狀態(tài)發(fā)生轉換的因素包括用戶(hù)調用、特定數據包以及超時(shí)等,具體狀態(tài)如下所示:

  1. CLOSED :初始狀態(tài),表示沒(méi)有任何連接。

  2. LISTEN : Server 端的某個(gè) Socket 正在監聽(tīng)來(lái)自遠方的 TCP 端口的連接請求。

  3. SYN_SENT :發(fā)送連接請求后等待確認信息。當客戶(hù)端 Socket 進(jìn)行 Connect 連接時(shí),會(huì )首先發(fā)送 SYN 包,隨即進(jìn)

  入 SYN_SENT 狀態(tài),然后等待 Server 端發(fā)送三次握手中的第 2 個(gè)包。

  4. SYN_RECEIVED :收到一個(gè)連接請求后回送確認信息和對等的連接請求,然后等待確認信息。通常是建立TCP 連接的三次握手過(guò)程中的

  一個(gè)中間狀態(tài),表示 Server 端的 Socket 接收到來(lái)

  自 Client 的 SYN 包,并作出回應。 ESTABLISHED :表示連接已經(jīng)建立,可以進(jìn)行數據傳輸。

  5. FIN_WAIT_1 :主動(dòng)關(guān)閉連接的一方等待對方返回 ACK 包。若 Socket 在 ESTABLISHED 狀態(tài)下主動(dòng)關(guān)閉連接并向對方發(fā)送 FIN 包(表示己方不再有數據需要發(fā)送),則進(jìn)

  入 FIN_WAIT_1 狀態(tài),等待對方返回 ACK包,此后還能讀取數據,但不能發(fā)送數據。在正常情況下,無(wú)論對方處于何種狀態(tài),都應該馬上返回 ACK包,所以 FIN_WAIT_1 狀態(tài)一般很難見(jiàn)到。

  6. FIN_WAIT_2 :主動(dòng)關(guān)閉連接的一方收到對方返回的 ACK 包后,等待對方發(fā)送 FIN 包。處于 FIN_WAIT_1 狀態(tài)下

  的 Socket 收到了對方返回的 ACK 包后,便進(jìn)

  入 FIN_WAIT_2 狀態(tài)。由于 FIN_WAIT_2 狀態(tài)下的 Socket需要等待對方發(fā)送的 FIN 包,所有常?梢钥吹。若

  在 FIN_WAIT_1 狀態(tài)下收到對方發(fā)送的同時(shí)帶有 FIN 和ACK 的包時(shí),則直接進(jìn)入 TIME_WAIT 狀態(tài),無(wú)須經(jīng)

  過(guò) FIN_WAIT_2 狀態(tài)。

  7. TIME_WAIT :主動(dòng)關(guān)閉連接的一方收到對方發(fā)送的 FIN 包后返回 ACK 包(表示對方也不再有數據需要發(fā)送,此后不能再讀取或發(fā)送數據),然后等待足夠長(cháng)的時(shí)間( 2MSL )以確保對方接收到 ACK 包(考慮到丟失 ACK 包的可能和迷路重復數據包的影響),最后回到 CLOSED 狀態(tài),釋放網(wǎng)絡(luò )資源。

【Java最新筆試題(附詳細答案】相關(guān)文章:

ARM硬件筆試題附答案07-05

電工面試題附答案06-28

誰(shuí)有比較全面的Java程序員面試題(附答案)?07-13

最新Java基礎面試題07-02

Java常見(jiàn)面試題(含答案)07-13

古詩(shī)試題訓練:途中見(jiàn)杏花(附答案)07-03

消防安全知識考試試題附答案07-04

32道java程序員面試題及答案07-13

《孔乙己》現代文閱讀附答案幾試題分析07-03

西塞山懷古古詩(shī)閱讀試題訓練(附答案)07-03

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆