過關(guān)斬將】面試中不得不提的STAR原則">【過關(guān)斬將】面試中不得不提的STAR原則
999
2022-05-30
文章目錄
前言
美團(tuán)
一面
二面
三面
四面
滴滴
一面
二面
三面
四面
360
一面
二面
題外話
新浪
一面
二面
三面
完美世界
一面
二面
HR面
總裁面
搜狐
一面
二面
三面
最后
前言
兩個月面了美團(tuán)、滴滴、360、新浪網(wǎng)、完美世界、搜狐六家公司,其中兩個公司面的都是Java研發(fā),美團(tuán)三面面試官說是做外賣機(jī)器人(類似無人駕駛車),個人比較感興趣,如果發(fā)offer,就簽約美團(tuán)了。找工作這幾個月,自己也看了很多的面經(jīng),了一系列的面試資料,為了回饋幫助過或給我?guī)硇判暮褪鋾r鼓勵的你們,特將美團(tuán)、滴滴、360、新浪網(wǎng)、完美世界、搜狐的面試經(jīng)歷記錄一下。希望取之以桃,報之以李吧。另外有需要面試資料的小伙伴們,也可以在文末領(lǐng)取一下!
美團(tuán)
一面
1.自我介紹和項目。
2.項目里面的數(shù)據(jù)庫如何設(shè)計的?
3.varchar的最大長度,超過了用什么?
4.多列索引怎么用?并解釋底層原理。
5.左連接、右連接、內(nèi)連接。
6.說出幾種保證線程安全的方法。
7.說出幾種保證線程同步的方法。
二面
1.自我介紹和項目。
2.五層網(wǎng)絡(luò)協(xié)議和osi七層網(wǎng)絡(luò)協(xié)議。
3.tcp3次握手和4次揮手,并解釋如果3次握手改成兩次行不行?
4.編程題,判斷鏈表是否有環(huán),除了快慢指針還有其它做法嘛?
5.編程題:找到鏈表的中間節(jié)點(diǎn)。
6.編程題:給出一個char數(shù)組 比如a,b,c每個字符出現(xiàn)的概率給出,如10%,20%,70,寫一個算法保證打印10000次字符,這三個字符的出現(xiàn)頻率是給出的頻率,而且每個字符都是隨機(jī)打印的,不能連續(xù)打印。
7.Mysql的存儲引擎。
8.事務(wù)的隔離級別,并回答幻讀是出現(xiàn)在一次事務(wù)操作還是兩次?
9.說下你了解的設(shè)計模式,并說下單例中的餓漢式和懶漢式的區(qū)別和各自的優(yōu)缺點(diǎn)。
10.場景設(shè)計,商品表,一共100件商品,如何保障多用戶購買商品時,商品數(shù)量不會出現(xiàn)負(fù)數(shù),并且保證效率最高。
三面
1.cap了解么?分別指什么?
2.網(wǎng)絡(luò)編程nio和netty相關(guān),netty的線程模型,零拷貝實(shí)現(xiàn)。
3.Redis是單線程還是多線程?Redis的分布式集群怎么做?
4.分布式消息隊列有哪些(Kafka等)?有使用過哪些?具體應(yīng)用在什么場景?
5.負(fù)載均衡怎么做的呢,為什么這么做,了解過集群雪崩么?
6.談?wù)劯卟l(fā)場景下削峰,限流的實(shí)現(xiàn)?
四面
HR面,聊優(yōu)缺點(diǎn),聊人生規(guī)劃,聊學(xué)習(xí)技巧,聊各種有的沒有,問Offer狀況。
滴滴
一面
1.自我介紹,講自己的實(shí)習(xí)經(jīng)歷和做的項目。
2.寫道題,判斷一個字符串是否為回文字符串(送分題)。
3.給出一張表,對應(yīng)該表,問了兩個問題,寫sql語句(一個學(xué)生表,一個成績表,查詢某人的總成績,更改某人成績)。
4.寫出你Linux常用的一些命令,然后問給一個文件,統(tǒng)計包含a,b,c的文件行數(shù),如何查詢擴(kuò)展名為.abc的所有文件?
5.場景設(shè)計題,滴滴打車發(fā)紅包,許多用戶搶,如何保證一個紅包被一個用戶搶到后不被其他用戶搶?
6.給你一支圓珠筆,測試它是否符合生產(chǎn)條件?
7.用沒用過redis,說下redis的好處和數(shù)據(jù)類型?
8.設(shè)計模式了解嘛,說下單例模式,并手寫一個線程安全的單例。
9.重載和重寫的區(qū)別。
10.java的多態(tài)體現(xiàn)在哪里?
二面
1.自我介紹和項目,對應(yīng)項目問了n元文法模型,然后手寫公式。
2.Redis的持久化操作。
3.如何利用redis處理熱點(diǎn)數(shù)據(jù)?
4.TCP三次握手的過程,如果沒有第三次握手有什么問題。
5.分布式鎖怎么實(shí)現(xiàn)?
6.說下常用的排序算法,寫下歸并排序。
7.手推歸并排序的時間復(fù)雜度。
8.說下java的反射機(jī)制,并解釋為什么java有反射而c++沒有,還有反射的應(yīng)用場景。
9.為什么要雙機(jī)房容災(zāi)備份,什么時候會整個集群都掛掉?
10.Kafka 用嗎,你們用kafka來干嘛的,kafka怎么保證消息不丟失的?
11.如果10倍流量來了,你們redis扛得住嗎?
12.為什么要雙機(jī)房?
13.死鎖遇到過嗎,講一下?
14.多線程了解嗎, 說一下synchronized跟reentrentLock的區(qū)別?
15.寫消費(fèi)者生產(chǎn)者模型。
三面
1.什么時候多線程會發(fā)生死鎖,寫一個例子?
2.說一說jdk1.8中,對hashMap的優(yōu)化,對concurrentHashMap的優(yōu)化?
3.如何解決hash沖突的,以及如果沖突了,怎么在hash表中找到目標(biāo)值?
4.有1000個數(shù)據(jù)存在hashmap中,實(shí)際的數(shù)量是多少,考慮負(fù)載因子和擴(kuò)容?
5.常見的RPC有哪些?對應(yīng)的區(qū)別和性能比較?
6.操作系統(tǒng)的用戶態(tài)和核心態(tài)切換條件以及為什么要切換?
7.線程間的通信方式,異步隊列,消息延遲獲取?
8.Tcp知道不?
9.Http的header有哪些?
10.浮點(diǎn)數(shù)求立方根。
四面
HR談人生理想和講滴滴的業(yè)務(wù)。
360
一面
差不多三十五分鐘左右吧
1.介紹你做過的項目。
2.手寫單例模式。
3.布局優(yōu)化。
4.有沒有用過什么開源框架?
5.ImagLoader的實(shí)現(xiàn)原理。
6.OnTouchEvent事件中 down事件 和up事件的傳遞。
7.hashMap的實(shí)現(xiàn)原理。
8.LinkedHashMap的實(shí)現(xiàn)原理。
9.內(nèi)存管理及優(yōu)化。
10.點(diǎn)九圖。
二面
一面過了十多分鐘以后,接著就進(jìn)行二面,都是視頻面試,差不多二十分鐘左右
1.AsyncTak的原理及常用方法。
2.APK從安裝到啟動的過程。
3.平時是怎樣學(xué)習(xí)的?
4.學(xué)習(xí)和實(shí)習(xí)是在怎樣協(xié)調(diào)的?
5.有360手機(jī)助手有什么想了解的嗎?
題外話
感覺個人太緊張了,有好多原理性的東西講著講著就忘記講了,面試的時候真的是太緊張了,發(fā)揮不太好,平時一定要多總結(jié),不然面試的時候一下子總結(jié)地不太好,發(fā)揮不出應(yīng)有的水平。
新浪
一面
1.先問自我介紹,說一下你認(rèn)為的團(tuán)隊合作?
2.用過Linux系統(tǒng)嗎?常用指令(我說不太了解,就沒問)
3.說一下虛擬內(nèi)存?
4.介紹一下hashmap?
5.hashmap和hashtable的區(qū)別?
6.算法題:10萬行數(shù)據(jù),每一行都是一個int類型的數(shù),按數(shù)字出現(xiàn)的頻次取出現(xiàn)次數(shù)最高的10個數(shù)
7.輸入是一個整形數(shù)組,輸出:數(shù)字+頻次
8.思路:可以自己定義一個類,里面key為出現(xiàn)的數(shù)字,value為出現(xiàn)的頻次
9.然后新建一個容量為10的小頂堆,按照value進(jìn)行排序。
10.我是用hashmap統(tǒng)計的,然后再對value用小頂堆(priorityqueue)排序,需要把value和key綁定。如果下一個的value小于堆頂則丟棄,大于堆頂則插入。
二面
1.自我介紹;
2.介紹項目;
3.KVM和XEN虛擬化的區(qū)別
4.如何用JAVA生成永遠(yuǎn)的ID:UUID(Universally Unique Identifier)
5.樹的遍歷,并非二叉樹的遍歷
6.堆排序的問題
7.多線程輪流執(zhí)行用什么鎖??
8.AOP的底層原理(動態(tài)代理,GClib)
9.Object類的方法
10.循環(huán)依賴如何解決,自己設(shè)計幾種算法
11.快速排序原理,隨機(jī)快排口述
12.iptable實(shí)現(xiàn)反向代理
三面
1.首先問了我發(fā)表的論文具體的內(nèi)容是什么?
2.虛擬內(nèi)存知道么?什么時候使用虛擬內(nèi)存?虛擬內(nèi)存除了擴(kuò)大內(nèi)存還有什么用?
3.Spring的上下文切換,如何優(yōu)化上下文優(yōu)化來做到減少系統(tǒng)資源消耗?
4.函數(shù)調(diào)用約定了解么?Function calling convention。
5.進(jìn)程線程的區(qū)別,除了包含關(guān)系之外的一些區(qū)別,底層詳細(xì)信息。
6.TCP/UDP 全部內(nèi)容:三次握手、四次揮手、為什么不能兩次,為什么三次,TCP的可靠是怎么實(shí)現(xiàn)的,滑動窗口,為什么是2MSL?
7.邊緣網(wǎng)關(guān)協(xié)議了解么?簡單描述一下
8.Docker容器相關(guān)。
9.高并發(fā)接觸過么(沒有,都是用戶量小,業(yè)務(wù)驅(qū)動技術(shù),并不是產(chǎn)品驅(qū)動技術(shù))
10.最后一個就是sql語句的考察,然后各種變換情況,表連接什么的,我以為寫錯了,結(jié)果面試官說都對~
完美世界
一面
1.自我介紹。
2.講一下HashMap,HashMap和Concurrent HashMap有什么區(qū)別,HashMap的Key可以為Null嗎?Concurrent HashMap呢?
3.知道異常嗎,將你知道的異常寫出來(這個我把異常的整個體系畫出來了,然后我自覺的將Error和Exception區(qū)別講了一下),說說常見的Runtime Exception。
4.了解并發(fā)編程是吧(因為我簡歷上寫了了解Java并發(fā)編程),講講Synchronized和Lock(這個我就將用法和注意事項和性能的區(qū)別一一講述),Synchronized修飾普通方法和修飾靜態(tài)方法有什么區(qū)別,然后面試官給我寫了兩個情景讓我講程序運(yùn)行情況。
5.講講GC機(jī)制,知道擔(dān)保機(jī)制嗎?
6.Java中阻塞線程的方法有哪些?(剛開始緊張說成中斷有哪幾種了,然后面試官提醒我說他沒問這個)
7.平時數(shù)據(jù)庫用的是什么?講講Mysql的存儲引擎。寫幾個SQL語句。
二面
1.會用線程池嗎?知道數(shù)據(jù)庫連接池嗎?如果讓你寫一個你怎么寫?(現(xiàn)場寫喔,但是我當(dāng)時不知道怎么想的,以為面試官讓我寫線程池,我就寫了半天線程池,然后面試官等不及了就看我寫的我還一本正經(jīng)的給講線程池,然后就很尷尬的進(jìn)入下一題了哈哈哈哈)
2.知道Https嗎?寫一下詳細(xì)連接過程。
HR面
主要是問如何做的項目和平時生活學(xué)習(xí)狀態(tài),講了一下薪酬和培訓(xùn)機(jī)制,感覺完美的人都蠻好的~
總裁面
總裁很有氣場!進(jìn)去就直接問項目里的東西,講了一些項目里用到的技術(shù),問平時怎么學(xué)習(xí),看什么書,在項目里都干了什么。然后就差不多了,感覺總裁特別特別忙,問我有什么問題,我就說沒有了,然后就結(jié)束啦。
搜狐
一面
1.自我介紹。
2.你用到了LDA,那么請講一下LDA的原理是什么?我簡單說了一下LDA生成文檔的過程,但是根據(jù)什么生成沒答上來2333(LDA是我的痛,看了幾遍沒看懂)
3.也就是說你的計算是現(xiàn)場算的么?是的,我知道這樣效率有問題,我的系統(tǒng)中沒有解決,但是可以先對新聞進(jìn)行聚類,然后對每個簇提出一個模型,先匹配簇在選擇新聞(SCENE 論文中的方法)
4.你的數(shù)據(jù)量有多大?3萬多條新聞,100個用戶吧。
5.你的用戶較少,那么在推薦的時候矩陣一定是稀疏的,對于這個稀疏矩陣應(yīng)該如何處理?可以用PCA或者SVD進(jìn)行矩陣分解
6.你的關(guān)鍵字是如何從文檔中提取出來的?使用了中科院的NLPIR+TF-IDF算法。
7.講一講tf-idf是什么意思,TF就是表示詞頻,IDF是逆文檔頻率的意思計算方法為log(N/n),N新聞集的大小,n為包含這個詞的新聞的數(shù)量。
8.你系統(tǒng)使用什么語言實(shí)現(xiàn)的?
9.你的新聞的備選集如何獲???選取當(dāng)天新聞,挨個算一遍。
二面
1.你的項目部署在哪里?
2.講一下項目
3.把項目中的主要數(shù)據(jù)庫表怎么設(shè)計的寫一下它的結(jié)構(gòu)
4.用戶表密碼是怎么存儲的?(回答MD5)你知道還有別的加密方式嗎?
5.寫SQL,根據(jù)設(shè)計的表進(jìn)行多表查詢(寫了一個嵌套查詢,又讓寫join查詢)
6.索引該怎么建?針對你設(shè)計的表每個字段,需不需要建立索引?
7.建索引的原則是什么?
8.你主要用了SpringBoot的哪些功能?
三面
1.你做的項目,哪些是對你來說無論是技術(shù)成長還是難度上是比較挑戰(zhàn),你項目遇到什么挑戰(zhàn)怎么解決的?
2.你的項目具備什么樣的能力,主要是解決什么樣的問題?
3.項目的一些問題,做了多久?你每天都會做嗎,還是會做一些學(xué)習(xí)上的事情?
4.做完之后有請周圍的人或者朋友來感受一下嗎?
5.算法題:
輸入一個整數(shù),判斷是否是自除數(shù)
輸入一個字符串,只考慮數(shù)字和字母,忽略字母大小寫,驗證是否為回文串?
6.代碼中為什么用StringBuilder,不用StringBuffer?
7.你有看過Java怎么實(shí)現(xiàn)equals和hashcode嗎?
8.好了,那么你覺著你自己都有哪些優(yōu)點(diǎn)呢?
最后
所有的面試題目都不是一成不變的,上面的面試題只是給大家一個借鑒作用,最主要的是給自己增加知識的儲備,有備無患。
秋招即將來臨,來刷刷這份秋招面試手冊,有需求即可免費(fèi)分享下載!(著重挑了一些常見的重要的面試題展示出來了)
知識點(diǎn)合集包含有:JAVA基礎(chǔ)、開源框架知識、多線程、分布式、數(shù)據(jù)結(jié)構(gòu)、算法、數(shù)據(jù)庫、Spring全家桶系列、JVM、MySQL、MyBatis、Dubbo、Liunx、TomCat等多種知識點(diǎn)。
獲取Java面試真題文檔 重要的事情要說三遍,轉(zhuǎn)發(fā)+轉(zhuǎn)發(fā)+轉(zhuǎn)發(fā),一定要記得轉(zhuǎn)發(fā)喔!??!
HashMap 任務(wù)調(diào)度
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。