前言
之前面了财經,說給大家寫面經的,一直忘了,現在補上。
6.16一面:
- 項目
- 無
- 基礎知識
- 計算機網絡
- 能說一下tcp斷開連接配接的過程嗎
- 一方要斷開連接配接時發送fin=1的包,另一方同意後回複ACK。此後 連接配接單方面斷開,這一方無法再發送資料,另一方還可以。直到另一方發送斷開連接配接的包,經過類似過程後連接配接最終斷開。
- 能說一下tcp擁塞控制的過程嗎
- 分為整個網絡級别的cwnd和兩端級别的rwnd。發送大小取兩者最小值。rwnd由接收方的ack或者稍待确認更新。表示還能發多少資料。cwnd由發送方自己維護。初始化為1,每收到一個确認加一,即指數增長政策。當到達預設的門檻值轉為線性增長。出現逾時時減半,分為慢啟動和快恢複。慢啟動時cwnd初始化為1,門檻值變為一半,重複過程。快回複時cwnd等于減半後的門檻值,并線性增長。
- 了解過快重傳嗎?
- 可以說一下為什麼快重傳是三次嗎?
- 這裡問他要了個提示,說跟奇偶性有關。有會的同學解答下嗎。
- 資料庫
- 會sql語句嗎?寫一個sql。一張表,有學生ID,學生名字,所選課程名。查找選修了最多選修課數目的那一群學生的人數。用到distinct,group by,max函數。面試官人特好還提示說那個字段叫distinct
-
了解資料庫事務嗎?
ACID。
- 說說你對隔離性的了解
- 隔離性和并發性是沖突的。現實中往往犧牲一定的隔離性來保證并發性。根據隔離級别不同分為髒讀,不可重複讀,可重複讀,幻讀。(這裡多嘴說了一句mysql應該是幻讀,被當場打臉。其實應該是可重複讀。可發散到mvcc,再聯系到binlog和undoredolog)
- 說說資料庫索引的底層資料結構?
- B+樹
- 和B樹有什麼差別?
- 非葉節點、底層數組串聯。(準确的說應該是底層雙向 連結清單便于範圍查找,這裡他放了我一馬)
- 作業系統
- 程序線程的差別是什麼?
- 程序定義
- 資源配置設定:線程是CPU資源的最小機關。程序是記憶體等資源的最小機關。此外線程隻保留有限的一些程式計數器和寄存器等私有資源,共享同一個程序的資源(是以也便于通信)。
- 管理上
- 程序建立線程、線程排程的開銷。核心線程使用者線程等。(這裡可以發散到使用者線程的起源和缺陷、還能發散到linux的lwp)
- 算法
- 單向 連結清單實作快排。
- 快慢指針從左到右
6.18二面:
- 項目:無
- 知識:
- 計算機網絡
- https加密過程
- 答得零零碎碎,就記得個ssl和數字證書、對稱加密非對稱加密。給放過了
- cookie和session的差別
- cookie儲存在 用戶端,記錄使用者通路資訊,如訂單記錄等。session沒答出來
- 資料庫
- ACID、隔離級别
- 樂觀鎖、悲觀鎖
- 系統通信的方法
- 遠端:socket
- 主機内
- 共享記憶體 、管道、收發消息
- 算法
- 二叉樹,輸入總和t,求出從根節點開始的某一條路徑。這條路徑上節點的和等于輸入的總和t。思路是遞歸,記錄到目前節點時的和。小于時繼續,等于時傳回。大于時表明這條路徑行不通,中斷。
- 最後差兩行代碼死循環跑不出來。面試官說結束了結果幾天内回報。我說能不能再給幾分鐘然後寫出來了。寫出來後立馬說準備三面hh。
三面
- 氣場很強的大佬。 項目背景和思路了解得飛快,畢設參考了一篇A會時還問了是哪個會議。
- 項目:找個印象深的來說。說了畢設和一個nlp 項目
- 知識
- 把osi七層說了一遍。從實體層信道到傳輸層都細說了一遍。其實應該沒必要說這麼細。相當于縮小了面試官考察你其他方面知識的時間,最後成績受 算法結果的影響就比較大。
- 資料庫的ACID、B和B+樹、 redis資料庫
- 作業系統程序排程(在這裡聯系到了線程的lwp)
- 說到了kafka
- 算法
- 關于反問
- 任何了解部門的語言挑戰都可以,這裡可以聊一聊他們業務遇到的問題,如果有條件了解到的話。最好别表現太重的得失心。
我的面試經驗彙總
由于平台限制,不能以圖檔的形式一一展示了!基礎的東西就不進行過多的贅述,我們将會從面試必問的說起,基本上文檔裡面的内容都是打出面試必問的技術點和面試真題整理而成,大家拿到手後建議直接去把真題做一下,一邊練手一邊考證一下自己的技術水準,全部做完之後再去看面試題解析和技術點講解,這樣的學習效率是非常高的!
以上所有資料歡迎關注公腫号:前程有光,領取一線大廠Java面試題總結+各知識點學習思維導+一份300頁pdf文檔的Java核心知識點總結!
