攜程Java後臺開發三面面經
前言
攜程是我面試的第一個網際網路公司,投遞的崗位是後臺開發實習生,總共面了三面,止步於人才庫。中間兜兜轉轉,複雜的心理活動,不足與外人道也。唯有面試的技術部分與大家共享。
宣講會完了之後有個手寫程式碼的筆試,大致內容:
1已知有一顆二叉排序樹,向樹裡面插入節點,如果該節點已存在(節點值相等),將節點中的count欄位加一;如果不存在,將節點插入樹中,並將節點的count值置為1。自行設計資料結構,插入演算法並且分析演算法的複雜度。
題目比較簡單,寫完交卷。晚上一點左右接到一面面試通知.
一面
例行自我介紹、專案介紹。然後開始面試:
專案是用http還是https訪問的。答:https。
http 1.0 和 http 2.0的區別?
說下https 的請求過程。
說說ssl四次握手的過程。
在java 7 和 java 8中GC的區別。
看你的專案上面有做大檔案的分片上傳,在上傳的過程可以做其他的事情嗎?是否可以後臺執行?
多個task是在一個程序中執行嗎?
資料庫建索引有哪些考慮?
之前儲存檔案分片序號的時候會出現髒讀的情況,如何防止髒讀?事務隔離是怎麼做的?
304狀態碼有什麼含義?服務端是如何實現的?
二面
技術和演算法問的比較少,全程都在談人生理想和職業規劃。
演算法
1在一個給定陣列中找到最大的兩個數。
為什麼很多類要定義成抽象類?
三面
22號星期二,接到hr面試預約電話。24號下午視訊面。面試官看起來斯斯文文的,親和力也很好。自我介紹之後面試正式開始。
java基礎:
ConcurrentHashMap 1.7和1.8的實現有什麼不同。
get() 和 size()是否要加鎖?如何加鎖?
泛型在編譯期和執行期的作用。
執行緒池是如何建立的?需要幾個引數?分別是什麼含義?
鎖:
樂觀鎖和悲觀鎖的區別。
樂觀鎖和悲觀鎖的實現。(資料庫、Java)
CAS syncronized實現有什麼區別。
violate關鍵字。
資料庫:
資料庫索引結構。
資料庫對sql語句的解析過程。
JVM
JVM GC的優缺點。
假設一個場景,要求 stop the world時間非常短,你會怎麼設計垃圾回收機制?
有沒有用過JVM相關工具?
演算法
海量資料top K演算法,講一下思路。
設計模式
策略模式和XX模式的區別。(這裡因為沒有看過其他設計模式,當時問這個題目的時候腦袋都是懵的。)
一二面面的都還可以。第三面面的不是很好。吃完飯查了下狀態直接進入人才庫了。比較遺憾。
作者:唐小敗
本文來源於牛客網
——————————
牛客網(www.nowcoder.com)
- 網際網路名企筆試真題
- 校招求職筆經&面經
- 程式設計師求職實習資訊
- 程式設計師學習交流社群