備戰金三銀四:最新百度、美團、京東java開發崗面試題及面試題專題(含答案)分享!
前言
年後又是招聘季金三銀四來了,每年這個季節裡都會有很多網際網路企業開出高薪招兵買馬,同時也會有成千上萬的Java程式設計師開始看機會找工作跳槽,找工作就肯定會涉及到面試,面對各家公司的風格迥異HR或者面試官。在這分享百度,美團,京東面試的最新面試題,以及文末準備的網際網路Java架構面試題系列,希望大家能在金三銀四中找到一個自己滿意的工作,升職加薪!
百度四面
一面:
- 自我介紹
- 作業系統瞭解麼,講一下程序和執行緒?
- 死鎖和處理方式
- 記憶體,虛擬記憶體和頁面置換?
- 網路瞭解麼,講一下三次握手和四次揮手?
- 資料庫瞭解多少,mysql索引,事務,鎖講了一些?
- Redis呢,講了一下資料結構,持久化方式,使用場景?
- 主從複製怎麼實現?
- 分散式瞭解哪些,負載均衡有哪些方式,一致性問題怎麼解決?
- mysql大表資料查詢,怎麼優化,分表,分庫?
- 二叉樹瞭解麼,平衡二叉樹呢,有什麼場景會用到呢?
- 未來的發展規劃?
二面:
- 專案講一下
- 排序演算法,複雜度,比較?
- 講一下OSI七層模型,我說了5層模型,然後他讓我再補充一下,問了每層的作用,問了wifi屬於哪一層?
- 執行緒間的同步用什麼方式?
- 問我使用hashmap時重寫哪兩個方法,為什麼要重寫,什麼場景下重寫?
- 平時用過什麼資料結構,list用哪些有啥區別。
- Spring中的ioc和aop。ioc的註解有哪些。
- autowired和resource有什麼區別,作用域有哪些?
- autowired如何配置兩個類中的一個嗎?
- 寫一個單例模式?
- Java會有記憶體洩漏嗎,三個區分別什麼情況下會產生記憶體洩漏?
- 未來的發展規劃?
三面:
- 主要了解哪些技術
- 分散式系統怎麼設計,說了CAP和BASE,最終一致性?
- 問我最終一致性是什麼,舉一下強一致性和最終一致性的例子。分散式事務和訊息佇列
- 分散式事務的訊息id怎麼確認順序,我說使用zk
- zk的效能瓶頸怎麼克服,我說使用redis和redis叢集。
- 網路這塊熟麼,說一下socket程式設計吧。
- 網路程式設計的NIO和BIO區別,阻塞指的是什麼意思呢。
- socket客戶端和服務端的連線過程和通訊過程說一下。
- 系統怎麼設計,設計模式怎麼用
- 系統優化怎麼做,cpu,IO,記憶體分別怎麼排查問題和調優?
- 未來的發展規劃?
hr面:
談談未來的職業規劃,聊聊人生,很愉快。
美團三面
一面:
- 自我介紹
- object類有哪些方法?
- hashmap的結構,1.7和1.8有哪些區別,除了紅黑樹優化以外還有哪些改進?
- 頭插法和尾插法的區別,頭插法在多執行緒時會出現什麼問題?
- concurrenthashmap的實現原理,1.7和1.8有什麼區別,分段鎖,synchronized和cas操作?
- cas操作是怎麼實現的,為什麼是原子性的。wait和notify方法用在哪裡,wait和sleep的區別,notify後面的程式碼會不會執行?
- synchronized和lock的區別在哪裡,使用方式上有什麼區別?
- 公平鎖和非公平鎖的區別?
- 執行緒池用過哪些,執行緒池有哪些引數?
- ArrayList和linkedlist有什麼區別,如何遍歷,使用for迴圈遍歷linkedlist為什麼不行,linkedlist能使用索引訪問麼,使用迭代器呢?
- 以後的發展和學習有什麼看法?
二面:
- JVM記憶體模型介紹一下,堆區怎麼分代,分代垃圾回收演算法說一下,老年代使用標記清除?
- JVM優化講一下?
- jvm場景問題, 標記清除多次後老年代產生記憶體碎片,引起full gc,接下來可能發生什麼問題。
- 哪些情況會觸發full gc,full gc是否包括young gc和major gc,如果只包括這兩個,為什麼要特地做full gc?
- Java中有哪些引用,分別有什麼用。
- Spring的ioc和aop說一下。
- 分散式用過哪些技術,我說自己跑過一些demo,問我zookeeper有什麼用,然後問我dubbo裡的zookeeper是做什麼的,我說服務註冊中心。
- 服務註冊中心實現什麼功能,消費者的本地快取如果失效了怎麼辦,我剛開始說多次失敗重新拉取,他說這樣不行吧,我就說讓生產者和註冊中心維持心跳,失效時刪除該節點並且更新消費者快取即可。
- MySQL用的挺多,問你一下,innodb的b+樹索引,主鍵索引,聚簇索引有什麼區別。
- MySQL裡有哪些鎖,行鎖表鎖,樂觀鎖等?
- MySQL的死鎖怎麼產生的,舉了兩個例子。
三面(HR面):
談談個人愛好,未來的發展計劃,瞭解一下你的溝通能力,很放鬆!
京東三面
一面:
- 自我介紹
- 講一下專案中的多執行緒實現
- Java的執行緒池的引數,拒絕策略,阻塞佇列等實現和使用
- fixethreadpool使用的是什麼阻塞佇列,如果使用arrayblockingqueue或者linkedblockingqueue會有什麼問題。
- ArrayList和linkedlist有什麼區別,擴容呢?
- hashmap,hashtable,concurrenthashmap1.7和1.8選一個說一下?
- jdk1.8針對hashmap使用紅黑樹優化目的是什麼,紅黑樹的結構說一下?
- JVM瞭解麼,說一下記憶體結構,堆區的分代,垃圾回收以及所用演算法。
- 為什麼要劃分年輕代和老年代,方法區是否會垃圾回收,gc時要掃描哪些位置?
- MySQL的隔離級別有哪些,預設級別是什麼?
- 樂觀鎖和悲觀鎖講一下?
- Redis提供有哪些資料型別,資料一致性,永續性,叢集?
二面:
- 講一下兩個專案,分別做了什麼,覺得跟自己做的專案有什麼不同,如何看待這種不同,應該如何改進。
- 平時怎麼學習,你的部落格一般寫了什麼,覺得和高質量部落格的差距在哪裡。
- Java虛擬機器瞭解麼,講一下記憶體分割槽和gc,如何排查堆記憶體的問題?
- Java的執行緒池瞭解麼,看過它的原始碼麼,怎麼修改原始碼可以實現執行緒狀態的監控呢?
- web框架了解什麼,講講SpringMVC的啟動過程,講了mvc上下文以及dispatcher初始化過程和請求流程?
- 設計模式瞭解麼,單例,工廠,分別出現在什麼場景?
- MySQL的select1和select *有什麼區別,為什麼加索引訪問比不加索引要快?
- 負載均衡的幾種演算法,快取的幾種淘汰策略?
- 計算機網路瞭解麼,http的header有哪些欄位,是否包含ip地址?
- 分散式系統怎麼設計,說了CAP和BASE,最終一致性?
- 分散式事務和訊息隊列了解多少?
- 以後有什麼規劃發展的想法,說一說。
三面(HR面):
對京東有什麼瞭解,對加班的有什麼看法,以後的發展是如何規劃的,聊聊人生,其實主要還是在看溝通交流能力!
最後
針對於上面的面試題我總結出了網際網路公司java程式設計師面試涉及到的絕大部分面試題及答案做成了文件和架構視訊資料免費分享給大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分散式、高併發等架構技術資料),希望能幫助到您面試前的複習且找到一個好的工作,也節省大家在網上搜索資料的時間來學習。
資料領取方式:加QQ群930254941,進群既領取資料!
點選連結加入群聊【java架構交流群】: https://jq.qq.com/?_wv=1027&k=57qP2qp