之前面了騰訊的提前批,不過沒走流程。同期還面了阿裡的兩輪面試,被告知不走流程就不能面了,所以也沒面完。 後來走了京東這邊的流程。前幾天剛剛面完HR。 正好今天分享一下麵經,大家可以多交流交流哈。 京東面經 第一輪:電話初面 第二輪:技術面談 第三輪:高管覆試 第四輪:HR最後確認 第一輪電話初面: ...
之前面了騰訊的提前批,不過沒走流程。同期還面了阿裡的兩輪面試,被告知不走流程就不能面了,所以也沒面完。
後來走了京東這邊的流程。前幾天剛剛面完HR。
正好今天分享一下麵經,大家可以多交流交流哈。
京東面經
- 第一輪:電話初面
- 第二輪:技術面談
- 第三輪:高管覆試
- 第四輪:HR最後確認
第一輪電話初面:
首先確認對京東的意向度(如果異地更會考慮對工作地點(北京)的意向度!京東很看重這個);其次面試官一般會針對您所做過的項目來做具體技術的交流,會比較關註個人對項目細節是不是掌握到位,主要考察Java的技術基礎和原理,比如Spring框架以及資料庫和JVM三個方面,也會交流到分散式、線程池的實現等等,重點考察是不是有比較鑽研技術和技術上的亮點【不一定每個面都很厲害但一定要有亮點】;
第二輪技術面試:
-
Java中的多線程瞭解麽,線程池的增長策略和拒絕策略瞭解麽,說一下。
-
講一下線程增加的過程和拒絕策略的執行。
-
講了一下fixthreadpool的增長策略,然後幾種拒絕策略。
-
高併發情況下,如何使用線程池,用哪個,問了一下線程結束要多久,是否在下一個線程結束前完成(我想的是cachethreadpool,其實思路錯了)。
-
表示併發量比較大,所以我說可以考慮併發量是否大於隊列長度加上最大線程數量和,如果不超過的話可以是用fixthreadpool。
-
併發juc瞭解麽,有哪些線程安全的list。說了個copyonwritelist,想了半天說不出第二個了。尷尬,那就vector把,不是juc里的。
貌似併發包里確實沒有其他list啊。
還問了concurrenthashmap1.8的改動。
-
HTTP協議瞭解麽,和tcp有什麼區別。
-
http1.0和2.0的區別。
答了TCP連接復用,加入ssl,以及壓縮請求頭。
其中哪個更新比較有意義,為什麼。我說的是壓縮請求頭,這樣可以優化HTTP服務的性能。
- Java的網路編程,比如NIO和Socket瞭解麽。說下BIO和NIO的區別把。
說下BIO和NIO的區別把。
我說了BIO的阻塞用法,以及NIO的IO多路復用用法,說了selector,seletedkey,channel等類的使用流程,以及單線程處理連接,多線程處理IO請求的好處。
- 說一下NIO的類庫或框架
講了netty,寫過服務端和客戶端的demo,沒有在生產中實踐。
channelhandler負責請求就緒時的io響應。
bytebuf支持零拷貝,通過邏輯buff合併實際buff。
eventloop線程組負責實現線程池,任務隊列里就是io請求任務,類似線程池調度執行。
acceptor接收線程負責接收tcp請求,並且註冊任務到隊列里。
- 倒排索引瞭解麽,我說不瞭解。
其實就是搜索引擎的基礎索引,根據關鍵字到文檔的映射關係建立索引,中文關鍵字可以使用中文分詞,查詢時通過關鍵字來定位索引,並且進行排序後得到文檔結果集。
然後面試官說講一下資料庫把,說下sql優化的方式
我說的是MySQL,先講了一下sql使用索引的優化,然後基於索引說了幾條優化方案。
- 索引什麼時候會失效變成全表掃描
說了聯合索引的首碼匹配,跳躍索引,聚合函數,判空和<>這些情況。
- 分散式的paxos和raft演算法瞭解麽
瞭解過,但是講不清楚。
paxos:多個proposer發請提議(每個提議有id+value),acceptor接受最新id的提議並把之前保留的提議返回。當超過半數的accetor返回某個提議時,此時要求value修改為propeser歷史上最大值,propeser認為可以接受該提議,於是廣播給每個acceptor,acceptor發現該提議和自己保存的一致,於是接受該提議並且learner同步該提議。
raft:raft要求每個節點有一個選主的時間間隔,每過一個時間間隔向master發送心跳包,當心跳失敗,該節點重新發起選主,當過半節點響應時則該節點當選主機,廣播狀態,然後以後繼續下一輪選主。
- 中間件知道哪些,阿裡的dubbo,rocketmq的事務消息,問了TCC回答說這個之前沒看明白。
說了mycat實現分表分庫,消息隊列kafka和rabbitmq等。
-
平時看什麼書,怎麼學習的。還跟我說他們部門3個華科的,校友多多。
-
Spring和Springmvc講一下。講了Spring的ioc和aop,Springmvc的基本架構,請求流程。
第三輪高管覆試
-
自我介紹
-
項目,收穫
-
Linux瞭解哪些,基礎命令和知識。問我proc文件系統瞭解麽,答不瞭解。
-
TCP和UDP的核心區別在哪,講了滑動視窗保證可靠有序傳輸,UDP不可靠。TCP需要連接而UDP不需要。
-
TCP的四次揮手,time wait狀態有什麼意義。
-
說完這個他問我有什麼想問他的了。
-
我問他為什麼隔了這麼久才面試,而且之前兩面都只是初試,然後他說最近他在休假,所以就...害我擔心了好久。他說接下來等HR面就行了。
第四輪HR面
-
興趣愛好
-
三年到五年的職業規劃
-
意向公司和城市
-
實習經歷和收穫
-
實習中最大的困難
-
為什麼換公司,為什麼拒絕菜鳥實習offer
-
你的缺點和優點
-
你覺得你比其他人優秀的地方說三個
-
為什麼想來我們部門
寫在最後
由於篇幅有限,部分答案就不做全部展示了,這些面試題的答案我已經整理成PDF文檔了,同時也整理了一些問題詳解;雖然說花了一點時間,但是我也願意把它免費分享出來,希望能夠幫助到有需要的Java工程師朋友,也省的大家再去網上花時間找資料。
↓ 後臺回覆【面試】