前言
攜程是我面試的第一個互聯網公司,投遞的崗位是后台開發實習生,總共面了三面,止步於人才庫。中間兜兜轉轉,復雜的心理活動,不足與外人道也。唯有面試的技術部分與大家共享。
宣講會完了之后有個手寫代碼的筆試,大致內容:
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)
- 互聯網名企筆試真題
- 校招求職筆經&面經
- 程序員求職實習信息
- 程序員學習交流社區