1. 程式人生 > >京東軟體開發工程師面試總結

京東軟體開發工程師面試總結

第一次工作面試,雖然成功了,但是有許多不足的地方,需要反思和改正。
因為時間與距離的原因,兩次面試都是電話面試進行的,第一次面試一個面試官,面試時間將近20分鐘,第二次面試,兩個面試官先後問問題,整個面試將近50分鐘。面試結果是通過。面試有一段時間了,可能有一些面試問題忘記了,現已入職。

第一次面試:問的基本上都是Java基礎的知識,簡單的問了些問題,
問題大致是一下幾個方面的:
1、 Java集合類,ArrayList LinkedList HashMap等 集合類的執行緒安全問題 底層資料結構
陣列和連結串列的使用場景 還問到了HashMap的原始碼
2、 多執行緒方面:執行緒生命週期 執行緒狀態 執行緒池
3、 Java記憶體模型 CAS 原子操作 volatile記憶體語義 功能
4、 Static final 關鍵字 類載入機制初始化順序
5、 Switch case 擊穿現象等

第二次面試:
問的框架方面和專案方面的問題比較多
1、 Java的幾大特性 繼承 封裝 多型 抽象
2、 問使用的框架 spring AOP IOC原理及實現(反射 代理 原始碼)
3、 設計模式:單例模式
4、 版本控制器Git 基本命令
5、 Java多執行緒方面問的比較多 重排序 結合多場景問是否發生重排序 執行緒池構建 執行緒複用
6、 類鎖 物件鎖 靜態鎖 結合多場景提問
7、 Volatile synchronized 實現同步的其他方式 ReenTrantLook等
8、 類載入機制
9、 JVM記憶體模型 虛擬機器棧 本地方法棧 堆 方法區 程式計數器 stackoverflowerror異常等
10、Netty框架+socket 觀察者模式 快取 通道
11、網路爬蟲 url判重
12、因為之前寫過一個仿Spring框架,讓我講解實現方式及流程。
13、Web容器的工作原理
14、問到反射相關的問題

總結:
1、 千萬不要太緊張,過度的緊張會影響思路,導致該說的,會說的,都說不清楚甚至說不上來;
2、 沒有必要問完問題之後馬上就回答,可以組織一下自己的語言,然後在回答,回答問題最好有條理,分條分步,這樣顯得思路很清晰,很熟練;
3、 講話一定要自信,然後語氣和語速要和平時一樣沉穩,不要顯得很急促,或者很沉悶;
4、 問一個問題,能多說就多說,在短的時間內,把自己會的東西儘可能多的展示出來,儘量說的有深度,而不是廣度。說的太廣,給人一種飄渺,什麼都懂,也只是懂一點的感覺。從是什麼,應用場景,如何應用,原理,底層實現方式,原始碼這樣的方式或思路去回答問題。回答的有深度,就讓面試官覺得這個人很行,研究的很透徹;
5、面試中儘量說自己擅長的部分,自己不擅長的方面少說,如果問到的問題確實是你不瞭解的,可以直接說不清楚或不會,乾淨利落的回答下一題,一方面拖拖拉拉的回答,給面試官不好的印象,更致命的是影響自己的心態,甚至影響整個面試過程。
6、 如果是電話面試或視訊一定要找一個自己熟悉的,安靜的環境。

建議:
1、 建議大家有時間多看一些原始碼,這樣面試的時候,結合原始碼講解回答問題,就很有說服力,經常研究原始碼的人,編碼風格和習慣肯定都不錯的,思路和設計上有突出的見解,這讓面試官很放心;
2、 平時學習的時候一定要不停的鑽研,直到底層實現,掌握原理,設計方式等;
3、 可以多參加網際網路級別的講座,面試模擬等活動,瞭解動態,平時多練兵,打仗才不慫。
4、 平時要多總結,多思考,最好形成文件,當進入公司之後就會發現,沒有文件就什麼都做不了。