面試經驗及題目分享

2021-06-29 03:27:04 字數 3805 閱讀 7196

自己實習了一段時間,信心滿滿地去面試,以為可以從容地應對,但事實並不是那樣,自己在做專案的時候,理論知識還是有待欠缺,對很多問題的理解都是一知半解,沒辦法讓人滿意,下面是自己整理的自己這次面試中一些題目,分享給大家。

同步與非同步的區別

同步:傳送乙個請求,等待返回,然後再傳送下乙個請求

非同步:傳送乙個請求,不等待返回,隨時可以再傳送下乙個請求

同步可以避免出現死鎖,讀髒資料的發生,一般共享某一資源的時候用,如果每個人都有修改許可權,同時修改乙個檔案,有可能使乙個人讀取另乙個人已經刪除的內容,就會出錯,同步就會按順序來修改。

非同步則是可以提高效率了,現在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)

會話層管理主機之間的會話程序,即負責建立、管理、終止程序之間的會話。會話層還利用在資料中插入校驗點來實現資料的同步。

6、表示層(presentation layer)

表示層對上層資料或資訊進行變換以保證乙個主機應用層資訊可以被另乙個主機的應用程式理解。表示層的資料轉換包括資料的加密、壓縮、格式轉換等。

表示層協議的代表包括:ascii、asn.1、jpeg、mpeg等。

應用層為作業系統或網路應用程式提供訪問網路服務的介面。

應用層協議的代表包括:telnet、ftp、http、snmp等。

表示層並不"關心"上層-應用層的資料格式而是把整個應用層遞交的資料報看成是乙個整體進行封裝,即加上表示層的報頭(presentation header,ph)。然後,遞交到下層-會話層。

同樣,會話層、傳輸層、網路層、資料鏈路層也都要分別給上層遞交下來的資料加上自己的報頭。它們是:會話層報頭(session header,sh)、傳輸層報頭(transport header,th)、網路層報頭(network header,nh)和資料鏈路層報頭(data link header,dh)。其中,資料鏈路層還要給網路層遞交的資料加上資料鏈路層報尾(data link termination,dt)形成最終的一幀資料。

當一幀資料通過物理層傳送到目標主機的物理層時,該主機的物理層把它遞交到上層-資料鏈路層。資料鏈路層負責去掉資料幀的幀頭部dh和尾部dt(同時還進行資料校驗)。如果資料沒有出錯,則遞交到上層-網路層。

同樣,網路層、傳輸層、會話層、表示層、應用層也要做類似的工作。最終,原始資料被遞交到目標主機的具體應用程式中。 

簡述tcp與udp的區別   

tcp

udp

是否有序

接收到的可能亂序,但是有段標號供排序 無序

可靠性可靠的

不可靠的

是否連線

面相連線

面相非連線 負責

維護虛擬連線,負載較高

無連線,負載較小

是否確認

需要確認(可靠性的一種)

不需要確認

是否有控制

滑動視窗和擁塞控制機制

無控制

get與post區別

form中的get和post方法,在資料傳輸過程中分別對應了http協議中的get和post方法。二者主要區別如下:

1、get是用來從伺服器上獲得資料,而post是用來向伺服器上傳遞資料。

2、get將表單中資料的按照variable=value的形式,新增到action所指向的url後面,並且兩者使用「?」連線,而各個變數之間使用「&」連線;post是將表單中的資料放在form的資料體中,按照變數和值相對應的方式,傳遞到action所指向url。

3、get是不安全的,因為在傳輸過程,資料被放在請求的url中,而如今現有的很多伺服器、**伺服器或者使用者**都會將請求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協議提供可靠的連線服務,採用三次握手建立乙個連線。

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器 進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入 established狀態,完成三次握手。

通過這樣的三次握手,客戶端與服務端建立起可靠的雙工的連線,開始傳送資料。

三次握手的最主要目的是保證連線是雙工的,可靠更多的是通過重傳機制來保證的。

同理對於tcp為什麼需要進行三次握手我們可以一樣的理解:

為了保證服務端能收接受到客戶端的資訊並能做出正確的應答而進行前兩次(第一次和第二次)握手,為了保證客戶端能夠接收到服務端的資訊並能做出正確的應答而進行後兩次(第二次和第三次)握手。

sleep與wait區別

sleep是thread類的方法,可以在任何地方使用,不會放棄對物件的使用權,在同步塊或同步方法中使用sleep,其他執行緒將無法訪問,到了指定時間就會自動執行。

wait是object類的方法,只能在同步塊中使用,放棄了物件的使用權,其他執行緒可以使用,需要另乙個執行緒呼叫notify進行喚醒,才能轉換到執行狀態。

注:乙個介面可以繼承多個介面

list set繼承collection map沒有繼承collection

面試經驗分享

到今天,自己的工作算是告一段落了,恰逢國慶,就宅在實驗室把這乙個月以來的面試經驗分享一下。cvte 廣州視源 c c 研發工程師 覆面 這一面明顯不怎麼問基礎的東西了,主要考察專案和隨機應變能力。綜合面 兩人一起面,還是人手不夠,時間緊的原因 兩天之後才收到通知,不過還要去一趟公司實習一段時間才能確...

面試經驗分享

1 undefined null true undefined null false 解析 typeof undefined undefined typeof null object 雙等號不用要求資料型別相同 2 js中的函式呼叫方法 解析 1 函式呼叫模式 function add a add ...

技術面試官經驗分享

我認為面試的原則是尋找長處,發現不足。面試不是去難為候選人,更不是去顯擺自己有多高的水平,而是要在較短的時間內尋找候選人的長處,確定其長處是否與崗位 團隊 文化匹配,順便也可以發現不足,評判此不足是否會產生負面影響。基於上述原則,為了能在較短的時間 通常小於1小時 內得出結論,在眾多的面試方法中,我...