
金三銀四過后,小編收集到了一許多粉絲和朋友發(fā)來的喜訊,從匯總的信息上了解到,他們平均月薪達(dá)到了32K,85%進(jìn)入了阿里巴巴、字節(jié)跳動、拼多多、美團(tuán)、京東、bilibili……這些知名大廠。
因為隱私保護(hù),小編不便于公布他們的真實信息,各位程序員朋友們可以參考一下這些面試細(xì)節(jié),做到知己知彼,方能百戰(zhàn)百勝。
特別說明:下面的內(nèi)容,就不是小編之前寫故事那樣半真半假的了,以下面試經(jīng)歷完全屬實,但僅供參考
小編只記得,有些拿到offer的朋友跟我說之前就是在我這里領(lǐng)過面試資料,然后認(rèn)認(rèn)真真的補(bǔ)上了自己缺失的部分,就一路順風(fēng)的通過了面試。

組團(tuán)進(jìn)的大廠?。?!
公司:美團(tuán)
地點:北京
工作經(jīng)驗:0-3年
崗位:實習(xí)
面試次數(shù):3次
面試內(nèi)容:
美團(tuán)一面(80min)
面試主要是從一個系統(tǒng)設(shè)計出發(fā),考察基礎(chǔ)跟項目架構(gòu)經(jīng)驗。美團(tuán)相當(dāng)重視基礎(chǔ)問題(計算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)),主要是圍繞一個系統(tǒng)優(yōu)化來的,下面就幾個重點提問:
1. 項目介紹(聊一下自己做的項目,前期了解了一下)
2.redis相關(guān)問題
2-1. redis主要能解決什么問題,聊一下你所知道的?
2-2. 聊一下redis高可用的相關(guān)。主要說一下哨兵集群的流程,包括選舉、以及宕機(jī)之后的處理方案,以及cluster集群的工作流程。
2-3. 聊一下redis哈希槽,為什么不用一致性哈希的方案?
2-4. redis為什么這么快?
2-5. redis跟mq的技術(shù)選型。
3.mysql相關(guān)問題
3-1. mysql的事務(wù)隔離級別。
3-2. 面試官描述了一個場景#¥%……¥……%&*這種情況下你怎么優(yōu)化mysql,說說你優(yōu)化的流程步驟。
3-3. 你能想到什么優(yōu)化mysql吞吐量的方案。
3-4. mysql的底層數(shù)據(jù)結(jié)構(gòu)?索引怎么存儲的?
4.rabbitmq
4-1. rabbitmq的優(yōu)勢,能解決什么問題?
4-2. 說一下rabbitmq怎么保證高可用的?
4-3. 聊聊鏡像隊列,怎么運(yùn)作的?口述下代碼?
5. 并發(fā)編程相關(guān)
5-1 hashmap跟concurrentHashMap
6. 接近一個小時的計算機(jī)網(wǎng)絡(luò)基礎(chǔ)、操作系統(tǒng)基礎(chǔ)
美團(tuán)二面(70min)
正兒八經(jīng)的面試了
1. 再來一個場景¥%……¥#%……&*&%…優(yōu)化mysql,具體步驟,什么命令,怎么操作,比較詳細(xì)。
2. redis分布式鎖的作用?什么場景用過?會有什么問題?(原子性的問題、誤刪鎖、誤得鎖等等)怎么解決這些問題?(面試官提了幾個場景,這塊聊了半個多小時)
3. 詳細(xì)聊了rabbitmq的工作流程。介紹下rabbitmq的組建,分別有什么類型,具體是怎么用的?口述代碼。
4. redis高可用。
5. 聊聊你了解的RPC,dubbo與springcloud?(我因為沒做過微服務(wù)項目,因此,問我,你覺得應(yīng)該有什么功能,我從springcloud的角度回答的)
6. RPC與mq技術(shù)選型,說下原因。
7. Spring源碼,我講了事務(wù)的源碼(擼了好幾次了,比較熟悉)。
8. 手?jǐn)]算法題兩道。
9. 聊實習(xí)時間、地點,未來發(fā)展。
美團(tuán)三面(50min)
HR(直接給錄用函)談笑風(fēng)生…聊薪資,工作地點,還有一些要錄入系統(tǒng)的基本信息,留了電話。
小結(jié):美團(tuán)的問題單個都不難,主要是在一個tomcat優(yōu)化的場景下要把東西聯(lián)系起來。
公司:bilibili
地點:上海
工作經(jīng)驗:0年
崗位:主要負(fù)責(zé)【數(shù)據(jù)分流】
面試次數(shù):3次
面試內(nèi)容:
Bilibili一面
1.問項目情況。
Bilibili二面
1.JVM:gc很關(guān)鍵,基本上只要問到j(luò)vm,必問gc。
答題過程:
說明垃圾處理器,說明垃圾處理器使用到的算法并說明什么時候?qū)ο蟊籫c(計數(shù)器法(缺點)和可達(dá)性分析),敘述對象的分派過程,何時進(jìn)入老年代,空間擔(dān)保機(jī)制。雙親委派模型偶爾會問到,類加載過程一定要熟記于心。
敘述類加載過程,敘述雙親委派模型原理,并說到如果不使用雙親委派模型java連最基礎(chǔ)的穩(wěn)定都保證不了。
2.Jvm的內(nèi)部結(jié)構(gòu)?
**答題過程:**敘述出每個塊的名字以及作用。
3.多線程:線程池會問到構(gòu)造方法的參數(shù),好處以及壞處。
內(nèi)置鎖和顯示鎖的使用場景 。
Cas原理和缺點解決的方法,以及原子類的說明。
Aqs,敘述數(shù)據(jù)結(jié)構(gòu),設(shè)計模式,模板方法和可重寫方法,內(nèi)部類狀態(tài)的變化以及節(jié)點的成員變量,說到這一定要說明condition和aqs的配合使用。
ConcurrentHashmap1.7-1.8基本都會問到的,數(shù)據(jù)結(jié)構(gòu),get,put,擴(kuò)容以及初始化,size,什么時候會擴(kuò)容,解決hash沖突的辦法以及1.8紅黑樹到鏈表的互相轉(zhuǎn)換。(有的公司會問到arraylist和linkedlist如果兩個線程去執(zhí)行寫操作會發(fā)生什么,我只說明了會引發(fā)線程安全的問題,這個時候就可以說說hashmap兩個線程去擴(kuò)容之后去get一個不存在的數(shù)據(jù)時會產(chǎn)生環(huán)形鏈表緩解一下尷尬。)
雙重檢測引發(fā)的問題(臨界區(qū)重排序帶來的)。
多線程遠(yuǎn)不止這些。
4.mysql的存儲引擎myisam和innodb必問。
索引分別使用到的數(shù)據(jù)結(jié)構(gòu)以及分類。
Sql語句的優(yōu)化十條一定要記住,并說明原因。
事務(wù)的性質(zhì)ACID以及隔離的級別并分別說明,引發(fā)的臟讀不可重復(fù)讀幻讀分別在哪個隔離級別上會發(fā)生。
5.算法:快速匹配字符串(暴力匹配和KMP算法)。
其實還有其他的算法,我最后問問題的時候問了面試官,怎么找到兩個鏈表的公共節(jié)點?怎么找到鏈表的環(huán)。
6.設(shè)計模式會問到單例模式,代理模式,工廠模式。
你看過哪些源碼,有用到什么設(shè)計模式?
7.網(wǎng)絡(luò):osi七層模型
Tcp三次握手,四次揮手狀態(tài)的變化(狀態(tài)沒記住嗚嗚)
Tcp為什么是可靠傳輸協(xié)議(確認(rèn)機(jī)制和超時重發(fā))
Bilibili三面
與HR阿姨噓寒問暖。
小結(jié):面試的時候一定要放輕松,會的問題不僅要答出來,還要讓面試官跟著你的思路走,比如內(nèi)置鎖和顯示鎖的使用場景,我就成功地將面試官引到了aqs。
公司:京東數(shù)科
地點:北京
工作經(jīng)驗:4年
崗位:京東數(shù)科中臺-主要負(fù)責(zé)業(yè)務(wù)是短信和push推送
面試次數(shù):3次
面試內(nèi)容:
京東數(shù)科一面
1.Java基礎(chǔ),接口,反射,數(shù)據(jù)結(jié)構(gòu),設(shè)計模式,實際處理問題的過程(這個會根據(jù)你說的方向深入一些繼續(xù)問)
2.spring的注解及講解aop,微服務(wù)用的什么,怎么選擇的,消息隊列,寫代碼后給出意見等。
京東數(shù)科二面
講講以前做的業(yè)務(wù),問一些邏輯思考題,還有為什么來這,優(yōu)勢是什么,以后的規(guī)劃,團(tuán)隊和個人不同意如何處理等。
京東數(shù)科三面
HR直面,整體問下以前公司的情況等問題。
小結(jié):要熟悉基礎(chǔ),最好能把簡歷上的都特別熟練,會圍繞簡歷問,中間會深入一個點問,不會了會換個方向,代碼也要熟悉,中間會有看代碼和寫代碼。
公司:字節(jié)跳動
地點:北京
工作經(jīng)驗:3年
崗位:大數(shù)據(jù)事業(yè)部服務(wù)端- 開發(fā)服務(wù)接 商業(yè)對接接口,還有各種kafka的消息推送
面試次數(shù):3次
面試內(nèi)容:
字節(jié)跳動一面
機(jī)試(java基礎(chǔ),算法,數(shù)據(jù)結(jié)構(gòu))。
字節(jié)跳動二面
主流框架理解,原理,數(shù)據(jù)庫架構(gòu),設(shè)計模式應(yīng)用,網(wǎng)絡(luò)基礎(chǔ)知識,分布式問題分析,并發(fā)編程,鎖知識,JVM優(yōu)化。
字節(jié)跳動三面
1.拓展知識,項目中常見問題的解決。如,如何保證redis和mysql數(shù)據(jù)一致。如何解決緩存擊穿問題。如何實現(xiàn)并發(fā)限流,JVM鎖和分布式鎖的區(qū)別。
2.給一個業(yè)務(wù)場景,如何架構(gòu)組件和數(shù)據(jù)庫。1到1000個數(shù),如何按順序存儲。(二叉樹問題)
小結(jié):掌握J(rèn)ava基礎(chǔ)和算法基本就成功了一半,更多場景化操作可以加分又加薪。
最后說幾句
這些問題真的很難嗎?
不難!
你真的不會嗎?
會!
面試答得出來嗎?
答不出來!
為什么?
很多程序員朋友,都只在乎自己在工作中用到的部分技術(shù),會用就行,公司不大,技術(shù)要求不廣,夠用就行。
恰恰就忽略了面試中問問題的深度與廣度,真的是面試造火箭,工作擰螺絲嗎?
不是,面試篩選出來的程序員,是能夠符合公司長遠(yuǎn)發(fā)展需求,能夠根據(jù)環(huán)境轉(zhuǎn)變及時跟上不落伍的人才。
所以啊!霸哥奉勸各位還處在低薪,滿足現(xiàn)狀的程序員朋友,多看看前方吧!
需要的程序員朋友,麻煩關(guān)注+轉(zhuǎn)發(fā),添加vx:bjmsb2019即可免費(fèi)獲取。


或許下一個進(jìn)大廠,給小編分享面試經(jīng)驗的大佬,就是你!
需要的程序員朋友,麻煩關(guān)注+轉(zhuǎn)發(fā),添加vx:bjmsb2019即可免費(fèi)獲取。