交流经验和面试题目
有一段時間自己練。理直氣壯地去面試,這可以從容應對,但事實并非如此,在做項目的自己?;蛘呤侨狈碚撝R。為了理解很多問題都是一知半解。沒有辦法讓人舒適,次面試中一些題目,分享給大家。
同步與異步的差別
同步:發送一個請求,等待返回,然后再發送下一個請求
異步:發送一個請求,不等待返回,隨時能夠再發送下一個請求
同步能夠避免出現死鎖,讀臟數據的發生。一般共享某一資源的時候用。假設每一個人都有改動權限,同一時候改動一個文件,有可能使一個人讀取還有一個人已經刪除的內容,就會出錯,同步就會按順序來改動。
異步則是能夠提高效率了。如今cpu都是雙核,四核。異步處理的話能夠同一時候做多項工作。當然必須保證是能夠并發處理的。
這些都是對的。
同步和異步最大的差別就在于。一個須要等待,一個不須要等待。
簡述iso的7層設計
解析:
在OSI參考模型中。從下至上,每一層完畢不同的、目標明白的功能。
1、物理層(Physical Layer)
物理層規定了激活、維持、關閉通信端點之間的機械特性、電氣特性、功能特性以及過程特性。該層為上層協議提供了一個數據傳輸的物理媒體。
在這一層。數據的單位稱為比特(bit)。
屬于物理層定義的典型規范代表包含:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
2、數據鏈路層(Data Link Layer)
數據鏈路層在不可靠的物理介質上提供可靠的傳輸。
該層的作用包含:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。
在這一層,數據的單位稱為幀(frame)。
數據鏈路層協議的代表包含:SDLC、HDLC、PPP、STP、幀中繼等。
3、網絡層(Network Layer)
網絡層負責對子網間的數據包進行路由選擇。此外,網絡層還能夠實現擁塞控制、網際互連等功能。
在這一層,數據的單位稱為數據包(packet)。
網絡層協議的代表包含:IP、IPX、RIP、OSPF等。
4、傳輸層(Transport Layer)
傳輸層是第一個端到端。即主機到主機的層次。
傳輸層負責將上層數據分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
在這一層。數據的單位稱為數據段(segment)。
傳輸層協議的代表包含:TCP、UDP、SPX等。
5、會話層(Session Layer)
會話層管理主機之間的會話進程。即負責建立、管理、終止進程之間的會話。會話層還利用在數據中插入校驗點來實現數據的同步。
會話層協議的代表包含:NetBIOS、ZIP(AppleTalk區域信息協議)等。
6、表示層(Presentation Layer)
表示層對上層數據或信息進行變換以保證一個主機應用層信息能夠被還有一個主機的應用程序理解。
表示層的數據轉換包含數據的加密、壓縮、格式轉換等。
表示層協議的代表包含:ASCII、ASN.1、JPEG、MPEG等。
7、應用層(Application Layer)
應用層為操作系統或網絡應用程序提供訪問網絡服務的接口。
應用層協議的代表包含:Telnet、FTP、HTTP、SNMP等。
在OSI參考模型中,當一臺主機須要傳送用戶的數據(DATA)時。數據首先通過應用層的接口進入應用層。
在應用層,用戶的數據被加上應用層的報頭(Application Header。AH),形成應用層協議數據單元(Protocol Data Unit。PDU)。然后被遞交到下一層-表示層。
表示層并不"關心"上層-應用層的數據格式而是把整個應用層遞交的數據包看成是一個總體進行封裝。即加上表示層的報頭(Presentation Header,PH)。
然后。遞交到下層-會話層。
相同,會話層、傳輸層、網絡層、數據鏈路層也都要分別給上層遞交下來的數據加上自己的報頭。它們是:會話層報頭(Session Header,SH)、傳輸層報頭(Transport Header。TH)、網絡層報頭(Network Header,NH)和數據鏈路層報頭(Data link Header,DH)。當中,數據鏈路層還要給網絡層遞交的數據加上數據鏈路層報尾(Data link Termination,DT)形成終于的一幀數據。
當一幀數據通過物理層傳送到目標主機的物理層時。該主機的物理層把它遞交到上層-數據鏈路層。
數據鏈路層負責去掉數據幀的幀頭部DH和尾部DT(同一時候還進行數據校驗)。
假設數據沒有出錯。則遞交到上層-網絡層。
相同,網絡層、傳輸層、會話層、表示層、應用層也要做類似的工作。終于。原始數據被遞交到目標主機的詳細應用程序中?!?/span>
簡述TCP與UDP的差別???????????????
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 無控制 |
Get與post差別
Form中的get和post方法,在傳輸數據過程中分別相應了HTTP協議中的GET和POST方法。
二者主要差別例如以下:
1、Get是用來從server上獲得數據,而Post是用來向server上傳遞數據。
2、Get將表單中數據的依照variable=value的形式,加入到action所指向的URL后面。而且兩者使用“?”連接,而各個變量之間使用“&”連接。Post是將表單中的數據放在form的數據體中。依照變量和值相相應的方式。傳遞到action所指向URL。
3、Get是不安全的,由于在傳輸過程。數據被放在請求的URL中,而現在現有的非常多server、代理server或者用戶代理都會將請求URL記錄到日志文件里,然后放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外。用戶也能夠在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的全部操作對用戶來說都是不可見的。
?4、Get傳輸的數據量小,這主要是由于受URL長度限制。而Post能夠傳輸大量的數據,所以在上傳文件僅僅能使用Post(當然另一個原因,將在后面的提到)。
?5、Get限制Form表單的數據集的值必須為ASCII字符;而Post支持整個ISO10646字符集。
?6、Get是Form的默認方法。
GET 和 POST 的數據格式都是一樣的:
GET 支持的最大字節限制是 2048 Bytes
POST 支持的最大字節限制是 2GB
Tcp中的三次握手
在TCP/IP協議中,TCP協議提供可靠的連接服務,採用三次握手建立一個連接。
第一次握手:建立連接時,client發送syn包(syn=j)到server,并進入SYN_SEND狀態,等待server確認;
第二次握手:server收到syn包,必須確認客戶的SYN(ack=j+1)。同一時候自己也發送一個SYN包(syn=k),即SYN+ACK包,此時server 進入SYN_RECV狀態;
第三次握手:client收到server的SYN+ACK包,向server發送確認包ACK(ack=k+1)。此包發送完畢,client和server進入 ESTABLISHED狀態,完畢三次握手。
通過這種三次握手,client與服務端建立起可靠的雙工的連接,開始傳送數據。
三次握手的最主要目的是保證連接是雙工的。可靠很多其它的是通過重傳機制來保證的。
同理對于TCP為什么須要進行三次握手我們能夠一樣的理解:
為了保證服務端能收接受到client的信息并能做出正確的應答而進行前兩次(第一次和第二次)握手,為了保證client可以接收到服務端的信息并能做出正確的應答而進行后兩次(第二次和第三次)握手。
Sleep與wait差別
Sleep是thread類的方法。能夠在不論什么地方使用,不會放棄對對象的使用權,在同步塊或同步方法中使用sleep,其它線程將無法訪問,到了指定時間就會自己主動執行。
Wait是object類的方法,僅僅能在同步塊中使用,放棄了對象的使用權。其它線程能夠使用。須要還有一個線程調用notify進行喚醒。才干轉換到執行狀態。
注:一個接口能夠繼承多個接口
List set繼承collection map沒有繼承collection
有興趣的朋友能夠關注微信:Job_Coder
?
版權聲明:本文博客原創文章,博客,未經同意,不得轉載。
轉載于:https://www.cnblogs.com/mengfanrong/p/4673119.html
總結
- 上一篇: Android数据保存之SharedPr
- 下一篇: Java模拟双色球彩票