面試題總結(一)

2021-06-22 07:18:19 字數 2289 閱讀 2529

這段時間找實習,碰到一堆算是經典的面試題。回答得不是很好,這裡總結一下,順便搜搜網上的答案。

(1)棧和堆的區別。

管理方式不同 (棧,由編譯器自動管理,無需程式設計師手工控制;堆:產生和釋放由程式設計師控制。)

空間大小不同 (棧的空間有限;堆記憶體可以達到4g。)

能否產生碎片不同(棧不會產生碎片,因為棧是種先進後出的佇列。堆則容易產生碎片,多次的new/delete會造成記憶體的不連續,從而造成大量的碎片。)

生長方向不同(堆的生長方式是向上的,棧是向下的。)

分配方式不同(堆是動態分配的。棧可以是靜態分配和動態分配兩種,但是棧的動態分配由編譯器釋放。)

(2)多程序和多執行緒的區別。

用多程序時每個程序都有自己的位址空間,執行緒則共享位址空間。(所有其他區別都是由此而來)

(3)程序之間的通訊方式。

管道( pipe ):管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。

有名管道 (named pipe) : 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。

訊號量( semophore ) : 訊號量是乙個計數器,可以用來控制多個程序對共享資源的訪問。它常作為一種鎖機制,防止某程序正在訪問共享資源時,其他程序也訪問該資源。因此,主要作為程序間以及同一程序內不同執行緒之間的同步手段。

訊息佇列( message queue ) : 訊息佇列是由訊息的鍊錶,存放在核心中並由訊息佇列識別符號標識。訊息佇列克服了訊號傳遞資訊少、管道只能承載無格式位元組流以及緩衝區大小受限等缺點。

訊號 ( sinal ) : 訊號是一種比較複雜的通訊方式,用於通知接收程序某個事件已經發生。

共享記憶體( shared memory ) :共享記憶體就是對映一段能被其他程序所訪問的記憶體,這段共享記憶體由乙個程序建立,但多個程序都可以訪問。共享記憶體是最快的 ipc 方式,它是針對其他程序間通訊方式執行效率低而專門設計的。它往往與其他通訊機制,如訊號兩,配合使用,來實現程序間的同步和通訊。

套接字( socket ) : 套解口也是一種程序間通訊機制,與其他通訊機制不同的是,它可用於不同及其間的程序通訊。

(4)tcp與udp的區別。

面向連線:tcp面向連線,面向連線意味著兩個使用tcp的應用(通常是乙個客戶和乙個伺服器)在彼此交換資料之前必須通過三次握手先建立乙個tcp連線。在乙個tcp中僅有兩方彼此通訊,多播和廣播不能用於tcp。udp是不可靠的傳輸,傳輸前不需要建立連線,可以應用多播和廣播實現一對多的通訊。

可靠性:tcp提供端到端的流量控制,對收到的資料進行確認,採用超時重發,對失序的資料進行重新排序等機制保證資料通訊的可靠性。而udp是一種不可靠的服務,接收方可能不能收到傳送方的資料報。

模式:tcp是一種流模式的協議,udp是一種資料報模式的協議。程序的每個輸出操作都正好產生乙個udp資料報,並組裝成乙份待傳送的ip資料報。tcp應用程式產生的全體資料與真正傳送的單個ip資料報可能沒有什麼聯絡。tcp會有粘包和半包的現象。

效率:速度上,一般tcp速度慢,傳輸過程中需要對資料進行確認,超時重發,還要對資料進行排序。udp沒有這些機制所以速度快。資料比例,tcp頭至少20個位元組,udp頭8個位元組,相對效率高。組裝效率上:tcp頭至少20個位元組,udp頭8個位元組,系統組裝上tcp相對慢。

(5)三次握手的過程。

在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。

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

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

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

完成三次握手,客戶端與伺服器開始傳送資料。

(6)從在瀏覽器輸入url到返回頁面的過程。

第一步:客戶機提出網域名稱解析請求,並將該請求傳送給本地的網域名稱伺服器。

第二步:當本地的網域名稱伺服器收到請求後,就先查詢本地的快取,如果有該紀錄項,則本地的網域名稱伺服器就直接把查詢的結果返回。

第三步:如果本地的快取中沒有該紀錄,則本地網域名稱伺服器就直接把請求發給根網域名稱伺服器,然後根網域名稱伺服器再返回給本地網域名稱伺服器乙個所查詢域(根的子域)的主網域名稱伺服器的位址。

第四步:本地伺服器再向上一步返回的網域名稱伺服器傳送請求,然後接受請求的伺服器查詢自己的快取,如果沒有該紀錄,則返回相關的下級的網域名稱伺服器的位址。

第五步:重複第四步,直到找到正確的紀錄。 

面試題總結一

按失效策略分類 強制快取 對比快取 了解詳細可參考 expires http 1.0 的字段,在響應訊息頭中,設定這個字段之後,就可以告訴瀏覽器,在未過期之前不需要再次請求。表示快取到期時間,是乙個絕對的時間 當前時間 快取時間 如 expires thu,10 nov 2017 08 45 11 ...

面試題總結(一)

尋找人生的關鍵點,並在關鍵時刻竭盡全力!udp包頭多長 8個位元組 源埠,目的埠,udp長度,udp檢驗和 select和epoll的區別 1.select為posix標準,epoll為linux所特有的 2.select的控制代碼數目受限,在linux posix types.h標頭檔案有這樣的宣...

面試題總結 html面試題)

附上鏈結 doctype 的作用是什麼?宣告一般位於文件的第一行,它的作用主要是告訴瀏覽器以什麼樣的模式來解析文件。一般指定了之後會以標準模式來 進行文件解析,否則就以相容模式進行解析。在標準模式下,瀏覽器的解析規則都是按照最新的標準進行解析的。而在相容模式下,瀏 覽器會以向後相容的方式來模擬老式瀏...