1. 程式人生 > >攜程Java後臺開發三面面經

攜程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)

- 網際網路名企筆試真題

- 校招求職筆經&面經

- 程式設計師求職實習資訊

- 程式設計師學習交流社群