引言
之前面了騰訊的提前批,不過沒走流程。同期還面了阿里的兩輪面試,被告知不走流程就不能面了,所以也沒面完。
後來走了京東這邊的流程。前幾天剛剛面完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
- 你的缺點和優點
- 你覺得你比其他人優秀的地方說三個
- 爲什麼想來我們部門
-
總結
歡迎關注CSDN:JAVA編程大飛哥
覺得收穫的話可以點個關注評論轉發一波喔,謝謝大佬們支持!
微服務、分佈式、高併發、高可用,性能優化丶源碼分析等等一些技術乾貨等着你來探討學習!