金三銀四過后蚂且,小編收集到了一許多粉絲和朋友發(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)的大廠A泻稹!苦始!
公司:美團(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即可免費獲取拘央。
或許下一個進(jìn)大廠,給小編分享面試經(jīng)驗的大佬书在,就是你灰伟!
需要的程序員朋友,麻煩關(guān)注+轉(zhuǎn)發(fā)儒旬,添加vx:bjmsb2019即可免費獲取栏账。