話說今天面試的姐姐好溫柔...
【組成】:自我介紹+計算機基礎+語言核心+雜談
看起來美團似乎不太關心我做過的專案...還好我還沒來得及準備,樂
計算機基礎
- 程序執行緒協程相關以及他們的區別
經典老番
- 計算機網路分為哪七層?
物理,鏈路,網路,傳輸,會話,表示,應用
【當時面試的時候沒答上表示層,別的都憋出來了,其實這樣考察的比較少】
- 那麼TCP和UDP在哪一層?以及他們的區別?
經典題,TCP和UDP主要是面向傳輸的,他們都在傳輸層裡
區別簡單來說就是一張表格
- 那麼http和tcp協議的關係呢?
也是經典問題,關於這個問題前面的美團面經應該總結過了。
【不知道為什麼,面試記錄裡應該有我回答過的記錄呀,怎麼會考重複了】
- 關於http和https的區別?
這裡關於SSL的加密和驗證我沒有講清楚,在這裡進行一個總結。
- http採用明文方式傳輸,不進行任何資料加密,非常不安全。https是在http基礎上,利用SSL/TLS來加密資料包。
- http預設工作在TCP協議80埠,https預設工作在tcp協議443埠。
- http的頁面響應速度比https快,這主要是因為http只進行TCP連線的三次握手,而https除了三次握手交換的3個包,還需要額外進行SSL握手交換9個包,總共交換12個包。
- 使用https需要到CA(Certificate Authority)數字證書認證機構申請證書
- https工作流程(轉自菜鳥教程)
- 第一步:客戶端發起HTTPS請求
- 第二步:採用https協議的伺服器都有數字證書,數字證書其實就是一對公鑰和私鑰。
- 第三步:伺服器傳輸公鑰給客戶端
- 第四步:客戶端使用TLS來解析證書,檢查公鑰的有效性。如果有問題會顯示一些網站證書存在問題。如果證書沒問題,那麼生產隨機值,使用證書對該隨機值加密。
- 第五步:傳輸加密後的資訊,讓服務端得到加密後的隨機值。
- 第六步:服務端使用私鑰對這個加密後的隨機值進行解密。得到了這個隨機值(就是對稱秘鑰)然後接下來就根據這個金鑰,對所傳的資訊進行加密,因為服務端和客戶端時對稱的,所以只有彼此有這個金鑰才可以互相交流看懂資訊。
- 關於加密演算法你知道哪些?
對稱加密演算法(AES,DES),非對稱加密演算法(RSA),摘要演算法(MD5,SHA256,MAC)。
【其實關於加密目前已知的資訊只有這些,後面如果面試有需要或者有信安相關的需求可以繼續補充學習,目前來說還是java和安卓核心是我的弱項】
- 關於執行緒安全,寫一個單例模式。
經典老題,菜鳥教程直接找就行【週五上午去看雙檢鎖模式的實現,週五下午騰訊八面之前搞清楚鎖的種類和機制還有鎖的最佳化】←考研J人經典的計劃環節
語言核心
- 講一下hashmap相關的資料結構
其實內容都很水,基本是必考題了,相關知識點都在前面雜談裡了
- 講一下你瞭解的鎖機制
有啥說啥,確實還不是很會,等學會的時候做一篇筆記(就不寫部落格了,搬運重複的內容沒有意義)沒準可以用雜談的形式分享知識。
- 說一下你都瞭解什麼資料結構
關於資料結構的問題都太水了,可能是我打ACM相關原因【不要輕易立flag,手搓紅黑樹還是做不到的,爭取週六能全學一遍,用自己的程式碼風格擼一個紅黑樹】
【關於Btree和B+tree的資料結構還是不夠熟,Splay演算法也好久沒寫了......】
演算法
今天才知道,不能太透露演算法題考核內容
- 一個很簡單的dfs,在dfs的過程中記錄深度,更新到vector對應深度裡即可。和樹的遍歷相關。
這個算透題嗎?答案很明顯了,倒推一手題目應該不難吧hhh
【話說我是用前向星寫的,可能還要看一下C++的struct】
由於t1寫的很快,好像給姐姐繞蒙進去了,(或許姐姐沒見過一邊神神叨叨一邊講自己的思路然後一邊敲程式碼的)
↑我在做project的時候也不是這樣的,只有在刷演算法題的時候。
玄學時間
我向大師請教,按照8維度榮格來說。我的Se和Ti是弱的,我的外傾感覺和內傾邏輯都比較弱。(這就是我永遠都是ENFJ的原因)
所以我需要更多的靠說服別人來說服自己。
而我最強的兩個維度是Si和Fe,分別是我的主導功能和輔助功能。(這更是我永遠都是ENFJ的原因,因為ENFJ最突出的表現就是這兩項)
關於更多的我也解讀不了了,等我週末再和大師深入交流請教。
最後附上一個奇怪的16人格型別分別對應的榮格8維功能表