美團後台開發工程師一面知識點總結 涼涼

2022-09-14 03:09:13 字數 2623 閱讀 2455

正向**和反向**的本質都是代為收發請求和響應。

正向**是乙個位於客戶端和目標伺服器之間的**伺服器。為了從原始伺服器取得內容,客戶端向**伺服器傳送乙個請求,並且指定目標伺服器,之後**向目標伺服器轉交並且將獲得的內容返回給客戶端。正向**的情況下客戶端必須要進行一些特別的設定才能使用。

反向**正好相反。對於客戶端來說,反向**就好像目標伺服器,並且客戶端不需要進行任何設定。客戶端向反向**傳送請求,接著反向**判斷請求走向何處,並將請求轉交給客戶端,使得這些內容就好似他自己一樣,因此客戶端並不會感知到反向**後面的服務,也不需要客戶端做任何設定,只需要把反向**伺服器當成真正的伺服器就好了。

正向**隱藏了客戶端。(訪問谷歌的梯子)

反向**隱藏了伺服器。(負載均衡,訪問內網伺服器)

反向**為何叫反向**?

程序

程序指乙個正在執行的程式,是系統資源分配的最小單位,乙個程序一般由以下幾部分組成:

程序的特點:

執行緒

執行緒又稱為輕量級程序,是程序內的一條執行線,是程式的實際執行者,乙個程序至少包含乙個主線程,也可以有更多的子執行緒。

執行緒的特點:

對作業系統來說,執行緒是最小的執行單元,程序是最小的資源管理單元。

無論程序還是執行緒,都是由作業系統所管理的。

協程

協程,英文coroutines,是一種比執行緒更加輕量級的存在。正如乙個程序可以擁有多個執行緒一樣,乙個執行緒也可以擁有多個協程。

協程不是被作業系統核心所管理,而完全是由程式所控制(也就是在使用者態執行)。

記憶體中堆和棧的區別

單核cpu與多核cpu,程序與執行緒,程式併發執行?

漫畫:什麼是協程?

goroutine背後的系統知識

如上圖所示,程序是有不同的狀態的,當有多個程序處於就緒狀態時,cpu排程程式從中選擇乙個程序將cpu分配給它。

決定選擇哪個就緒程序去cpu執行的部分稱為排程程式,它所使用的演算法稱為排程演算法。

先來先服務排程演算法

最短作業優先演算法

高響應比優先演算法

響應比=(等待處理器的時間+期望服務的時間)/ 期望服務的時間

時間片輪轉演算法

優先權排程演算法

多級佇列排程

多級反饋佇列排程

虛擬儲存器就是指僅把作業的一部分裝入記憶體就可以執行作業的儲存系統。

它具有請求調入功能和置換功能,是從邏輯上對記憶體容量進行擴充的一種儲存系統。

請求頁式儲存管理

缺頁中斷

缺頁:程序執行時要訪問的頁面不在記憶體

缺頁導致缺頁中斷:os響應缺頁中斷,把所需頁面調入記憶體

缺頁置換演算法

最優頁面置換演算法

先進先出置換演算法

lru置換演算法(least recently used 近期最少使用)

分類描述

1**資訊,伺服器收到請求,需要請求者繼續執行操作

2**成功,操作被成功接收並處理

3**重定向,需要進一步的操作以完成請求

4**客戶端錯誤,請求包含語法錯誤或者無法完成請求

5**伺服器錯誤,伺服器在處理請求的過程中發生了錯誤

常見的狀態碼

狀態碼狀態碼英文名稱

中文描述

200ok

請求成功,一般用於get與post請求

320found

資源臨時被移動,客戶端應繼續使用原有uri

403forbidden

伺服器理解客戶端的請求,但是拒絕執行此請求

404not found

伺服器無法根據客戶端的請求找到資源

500internal server error

伺服器內部錯誤,無法完成請求

502bad gateway

閘道器或者**伺服器嘗試執行請求時,從遠端伺服器接收到了乙個無效的響應

http狀態碼(菜鳥教程)

https的特性

機密性對稱加密,非對稱加密,混合加密

完整性摘要演算法

身份認證,不可否認

數字簽名(私鑰+摘要演算法)

漫畫:什麼是https協議

索引

事務

leetcode: 資料流中的第k大值

golang實現

leetcode: 爬樓梯

golang實現

字串轉數字(比如說string型別的123,轉化後應該為int型別的123)

騰訊演算法工程師一面C 知識點

c 基本概念 1 c 多型,能說的更詳細一點嗎?一種介面,多種實現。分為靜態多型和動態多型兩種 靜態多型分為函式過載和泛型程式設計 動態多型指的是虛函式 多型2什麼是虛函式?什麼是純虛函式?3 繼承時哪些成員可以繼承 private不可以,public和protected可以 4 引用和指標的區別 ...

美團一面面經 演算法工程師

一面 60min 一面內容 自我介紹 講一下 和專案 怎麼樣提的特徵 做了哪些特徵工程 講一下決策樹 隨機森林 隨機森林的 節點的策略 兩個隨機 bagging和boosting的聯絡和區別 boosting中的adaboost的基本原理 boost中的gbdt的原理 和隨機森林有什麼區別 哪個精度...

京東C 開發工程師(實習崗)一面

一面跪,為了見證我的成長,我還是要記錄下來。面試官人態度很好,雖然我傻傻的什麼都不懂,但是還是沒早早讓我離開,聊了半個小時。1.自我介紹,客觀一點。2.從作業系統,計算機網路,通訊入手,問了第乙個問題,tcp和udp的協議是啥?3.正式開始擼 手寫單鏈表的逆序。4.二叉樹的高度 5.堆排序 6.查詢...