大廠面試復盤

作為一位二本畢業,非計算機專業的學生來說,先后在0-20小公司,外包,100-499的中小公司做java開發,目前終于通過大廠面試,下面來看看整個面試過程

一面:電話面試

1、Java重寫equals 為什么要重寫hashcode?

答:如果重寫了equals不去重寫hashcode那么就有兩個對象equlas相等,hashcode不一樣,對于hashSet來說,因為hashcode不一樣計算的數組位置下標也不一樣,這樣兩個對象都能存到這個Set集合里面。這就違背了Set不能裝重復對象的設定。這樣包括hashmap在內的只要已hashCode未基礎的各種集合無法正常去判斷一個對象。

2、介紹一下java常用的集合類,底層數據結構,線程安全不安全

答:介紹了ArrayList LinkedList HashMap HashSet HashTable??concurrenthashmap 詳細介紹一番。(面試必問,已經老油條了)

3、說一下hashMap的put方法流程

答: 巴拉巴拉一大堆,重點要分1.7 和1.8講,以及講清楚了1.7的鏈表頭插法導致并發擴容的時候的形成的環形鏈表導致的死鎖問題。1.8改成尾插法來解決這個問題。1.8的紅黑樹引進。什么時候會變身紅黑樹。(面試必問,必須的)

4、new一個hashMap 傳入的容量為10 最終new 出來的map的數組長度是多少?

答 是16

hashMap 的數組長度總是2的n次方,至于為什么 源碼這么設定的,不太清除為什么這么設定。(看了源碼也不知道)

5、volitale關鍵字用過嗎,它能解決什么問題?

答:解決并發問題的線程之間的可見性問題,當多個線程對同一個變量進行操作的時候,該線程并不能感知到別的線程已經修改了這個變量。volitale是對JAVA對MESI緩存一致性協議給出的關鍵字。之后又扯了什么是MESI協議,cpu從從主內存讀變量到工作內存這一大堆流程。volitale還能防止指令重排。之后面試官接著問讀寫屏障,這我就支支吾吾打不上來了。(這塊射擊的底層計算機知識太多,問深了打不上來)

6、線程池用過嗎,有哪些核心參數,線程池的工作流程是什么樣子的。

答 :核心線程數? 最大線程數 最大空閑時間 線程池滿的時候的執行策略。然后介紹了線程池的工作流程,以及這幾個參數是如何配合流程工作的。(這問題,為了面試也得專門看,穩)

7、線程池內的線程出現錯誤拋出來異常?線程池會如何處理?

答:移除銷毀該線程,重新創建一個新線程(這個不知道答的對不對,小伙伴可以自己查一下)

8、了解jvm模型嗎,那些區域是線程共享的那些是線程獨享?

答:線程棧,本地方法棧,程序計數器是獨占的 堆和元空間共享的。

9、知道oom嗎,發生oom如何排查?

答:巴拉巴拉一大堆,說的估計不準確,但是大概意思是這樣子的。

10、數據庫的隔離級別,什么是臟讀,mysql默認的隔離級別。

答:巴拉巴拉一堆,(基本概念題是,穩的一批)

11、做過sql優化嗎 mysql 索引的數據結構 什么時候索引會失效

? 答B+Tree 然后巴拉巴拉一大堆。

12、接著問B+Tree有什么特點,為什么要用B+樹

答 巴拉巴拉一大堆(做足了準備,穩的一批)。

13 介紹幾個設計模式?項目應用

答:工程模式,模板方法模式,策略模式,責任鏈模式。

認證鑒權管理用的責任鏈模式

一面大概40分鐘,主要記得的就上面這些問題。

線程池用的策略模式

springmvc中用的適配器模式調用controller方法。(不一定介紹項目應用,介紹源碼應用也一樣的)


兩天之后二面(視頻面試)

1、i++和++i;

2、equals和== 區別

3、方法的重寫和重載

(這三個問題問的我狂喜,我四年工作經驗問我這個???然后平靜的回答了這些問題)

后面全程高能,不做面試準備基本連話都說不出來!!!!

4、談一談synchronized知道它的膨脹升級過程嗎

答:每個對象都可以成為synchronized的鎖對象,在對象的對象頭存有持鎖線程的信息。然后介紹了一下synchronized的無鎖->偏向鎖->輕量級鎖->重量級鎖的整個過程,巴拉巴拉一大堆。

5、AQS了解嗎,知道AQS框架下的那些鎖,有看過源碼實現嗎

答:介紹了ReentrantLock?后面說源碼實現隨便說了說。(基本我已經忘完了源碼,答得比較爛)

6、redis用過嗎?它又那些數據類型?你們項目中這么用的這些數據類型?

答巴拉巴拉一大堆(這個文體還好 ,我們主要用String 和hash?然后介紹了一些簡單的業務場景使用)

7、了解redis的緩存淘汰機制嗎?遇到過redis內存崩潰嗎?

答?

LRU算法然后介紹了一下算法實現。redis內存崩潰沒遇到過(實在不敢說遇到過,萬一接著這個問題往下問,這么辦。不敢接)。

8、看你簡歷里面都是用的springBoot,如何做一個start

答:詳細說明了一下如何做一個start(這個之前學springboot的時候做過,比較清楚),并介紹了一下自動裝配原理

9、spring的bean聲明周期?

答:巴拉巴拉一大堆(終于輪到我發揮了,我自認為答的最好的一個問題,從源碼層面將sping容器啟動過程,如何解決循環依賴,為什么要用三級緩存,springAop

sping和mybatis整合和面試官深入探討一番,過程20分鐘,不磕不拌,接下面的問題面試官再也沒提spring的事)

10、介紹一下啊mysql有那些引擎,有什么區別,mysql的鎖

答:巴拉巴拉一大堆(又是一大堆概念問題,穩穩的)

11、用過分布式鎖嗎?這么實現分布式鎖的?

答:用過,redis做分布式鎖 介紹了一下redission框架和原理(這個最近項目中有用到這,所以比較了解,總的來說,你要是用的現成框架實現的,需要知道原理,如果你是自己寫的,需要知道實現細節以及考慮了那些問題)

12、看你用過rabbitmq,你們是在什么場景下用的,你們是這么做可靠性投遞的?

答:介紹了我們的應用場景,已經可靠性投遞的實現(消息重復發送和消費者做冪等性保證)(說實話感覺過于簡單,面試官沒有看上我們的方案)

13 dubbo 的服務暴露和注冊或稱,調用過程

答;巴拉巴拉一堆(我簡歷上寫的有dubbo,但是很久都沒有用了,如果不寫,那簡歷上一個rpc都沒有,有點磕磣,還是寫了,照著準備的答一下吧)

14 什么是CAP理論?zookeeper是cp架構還是ap架構?為什么?

答:巴拉巴拉一大堆。(解釋一下:CPA是指 C:數據一致性 A:系統可用性 P:分區一致性 簡單說:我們的服務如果是多節點集群部署,那么總會存在網絡等問題造成節點之前無法通信問題,所以要保證P,在發生網絡不可達造成節點信息不一致是,要么你停止對外服務,保證數據一致性 這就是CP架構,要么你繼續提供服務,但是節點數據不一致,這就是AP架構,這個大家可以參考資料。之前沒了解過,為了面試準備看到的。)

15 現在有10萬電影票 如何實現秒殺搶電影票?

答:用分布式鎖,然后巴拉巴拉將了一大堆(開放性問題,只要你說的有道理就行,但是不能不說)

16 數據庫里面的表有2000w數據,如何處理?

答:(其實想問如何分庫分表,委婉得表示了一下自己實際應用中并沒有分庫分表得經驗。)

17 你用到過spingCloud沒有?

答:沒有。面試官應該看我的簡歷沒有springCloud,所以問了一下,這里我簡單得介紹了我們得項目情況,沒有必要上springCloud然后表明了自己最近也在看springCloud并且向面試官介紹了幾個組件及其實現原理。

算法題:

給一個int數組包含重復元素,如何統計不重復元素得個數,并且輸出不重復元素?

排序加雙指針法

可以參考力扣題目?https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/?解法大同小易

因為做過這個上面力扣這道題,所以第一反應就是有思路序加雙指針法(快慢指針)大概15分鐘做完,寫代碼得時候會和面試官交流思路,然后因為緊張,變量名都寫錯了,面試官給了提示。還好最后運行出來了。

二面是所有時間最長得一面,考察的也很廣,大概持續了一個多小時。面試完整個人都虛脫了。

三面:(視頻面試)

聊了聊項目得實際情況,問了一下項目某些功能得具體實現,并問了一下哪個項目最讓你感覺成功以及解決了那些問題讓你印象深刻。

我回答了最近的項目,深度參與到了需求分析,代碼開發,問題修改,環境發布,技術文檔輸出。然后舉了一個開發遇到得數據庫死鎖問題(加索引引起得select操作和update操作在并發條件下出現得死鎖,,以及排查和解決過程。)

由于項目是在沒有高并發和大數據得地方,面試官可能也沒覺得要問得地方,最后讓寫了一個排序算法,時間復雜度在O(nlogn)級別

(其實就是讓你在快排,堆排,歸并排之前選一個寫),我寫了一個歸并排序。并簡單聊了一下分治得思想。

三面結束!!!不到半個小時

后面隔了一天hr打電話說面試通過,走offer發放流程。

總結:基礎貫穿整個面試過程,所以復習基礎很重要,spring

mysql jvm 鎖 面試大廠必問。另外我相信很多和我一樣一直在小公司開發的程序員,項目根本就沒有高并發,(有并發,高并發談不上)大數據處理真實項目經驗 。都是一些業務項目。這個時候簡歷上面不建議寫有高并發大數據處理項目經驗。如果你寫了,他會問你哪個項目做的高并發,是什么業務,具體做了那些并發管理 并發量是多少,qps 多少,各種處理細節,集群這么搭的等等一堆只有做過才能答上來的問題。這部分不像基礎知識和源碼能靠自己學習就能搞定。萬一被問露餡了那更是給面試官留下一個非常不好的印象。你可以說自己學習了解過這部分知識,也知道一些方案。可以和面試官講一下這些方案。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,744評論 3 421
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,879評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,935評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,325評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,534評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,084評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,892評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,322評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,800評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,084評論 2 375

推薦閱讀更多精彩內容