四面京東Java研發崗,成功拿下offer,分享我的面試經歷!

2020-09-28 20:01:07


之前面了騰訊的提前批,不過沒走流程。同期還面了阿里的兩輪面試,被告知不走流程就不能面了,所以也沒面完。

後來走了京東這邊的流程。前幾天剛剛面完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的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,需要我個人整理出來的學習資料、學習腦圖、電子書籍等全部資料的,直接點選這裡,對,就是這裡,回覆暗號:CSDN免費領取!!!