面試多次被拒,‘兩個月’61天,我收到了螞蟻金服P7級的offer

2020-10-17 13:01:14

個人近期面試情況

今年七月以來,我的面試除了一個用友的,基本其他都被斃了,可以說是非常殘酷的。其中有很多自己覺得還面的不錯的崗位,比如百度、跟誰學、好未來等公司。說實話,打擊比較大。

情況基本上是從九月開始好起來的,這個時間點,秋招開始了,國家之前也開啟了接近40萬億的基礎建設計劃,在這個時間段,面試的幾個代表性的公司,包括騰訊、餓了麼、寶寶樹、曠世科技等等,基本都成了。

最終,就在前段時間,螞蟻金服給我確認了P7的職位。也算自己到了另一個奮鬥的階段了。對自己的經歷,做一個面試總結。

###我的面試準備
面試其實我是屬於一邊面試,一邊準備的過程,但是無論如何,一定要做到基礎紮實、比較好的自我介紹,以及描述自己的職業故事。

面試經歷

快手 – 視訊面試30分鐘

談一下專案

談一下對IOC和AOP的理解

Memchached 和 Redis 的區別

Redis的持久化實現

Redis的淘汰策略

定期刪除和惰性刪除的區別、優缺點

IOC的原理是什麼

Hashmap的底層實現和原理

手寫一個,實現map的put方法

百度 – 視訊面試20分鐘

說下spring事務,@Transition 這個註解在哪些情況下不會生效

Synchronized 基本原理

Synchronized和ReentrantLock 都是可重入鎖,他們倆是怎麼實現可重入的

執行緒池的工作原理和7個引數

Volatile的用處

JVM在什麼情況下會發生YoungGC和FullGC

Redis的淘汰機制

類載入機制說一下

快速排序的基本實現

Mysql優化是怎麼優化的,索引失效的情況都有哪些

實現一個搶紅包的演演算法,怎麼實現

讓你實現一個LRU演演算法,怎麼實現

搜狐一面 – 視訊面試 50分鐘

JVM垃圾回收機制

怎麼判斷當前物件能否被回收

物件首次建立的話建立在哪個區(新生代還是老年代,新生代哪個區)

解釋一下stop the world

Stop the world 過程中,如果有新的垃圾產生怎麼辦

我說我們專案用的是JDK1.6,面試官就問,1.8和1.6都有哪些區別

有了解過1.8的stream流嗎

HashMap1.8和1.8之前的區別,以及底層實現

HashMap為什麼不是執行緒安全的

HashMap還會造成什麼問題(1.8之前頭插法會導致死迴圈)

實現HashMap執行緒安全的有哪些(我答了三種)

CurrentHashMap的底層原理,以及1.8和之前的區別

詳細講講CAS的工作原理

CAS的ABA問題怎麼解決的

你常用的執行緒池有哪些

執行緒池的7個引數

SingleThreadExecutor和CachedThreadPool為什麼不推薦使用,會出現哪些問題

寫一個氣泡排序

寫一個演演算法,快樂數(LeetCode原題),我一開始用遞迴寫,會出現死迴圈的狀態,面試官超好提醒我,然後花了很長時間修改演演算法,通過

Mybatis有了解它的外掛嗎

MybatisTemplate 有了解嗎

Redis的五個引數

Redis的事務,我Muliti事務開始,然後寫了五個key,其中有一個失敗了,Redis怎麼處理的,會回滾嗎

Redis事務和Mybatis事務有什麼區別

Redis主從複製瞭解嗎

Redis主伺服器是怎麼給從伺服器寫入資料的

看你還了解Docker,(簡單說了一下玩過一點點)

螞蟻金服(支付寶)一面 – 視訊面試 50分鐘

聊了十多分鐘做的專案

你們公司自研的Spring和市面上流行的Spring有什麼不一樣

Redis主要用來幹嘛的

Redis的持久化方式

Redis的事務有了解嗎(我說了使用的基本命令和mybatis、mysql的區別)

你對你們經常使用的集合底層有了解嗎

HashMap的底層原理,1.8以及之前的,執行緒安全實現方式

Sychonized和ReentrantLock 的區別

Volatile的作用是什麼

對JVM垃圾回收器有了解嗎

CMS垃圾回收器說一下工作原理

堆和棧的區別

JVM的調優

try{}catch{}finally{}中,如果finally{}中的返回值+1,返回的是多少,會改變返回結果嗎

執行緒池有了解嗎,它的工作原理

固定長度的執行緒池有什麼缺點

Mysql和Oracle你用的最大的區別是什麼(我說了兩者的事務隔離級別,以及mysql中的Explain和oracle當中的Explain plan for的區別)

Mysql的聚簇索引和非聚簇索引有了解嗎

看你做過Sql優化,講講你做了哪些優化

Mysql回表知道是什麼嗎

SpringMVC的工作流程是什麼

一道簡單的演演算法題,反轉連結串列,我說這題我前段時間專門leetcode上練過,我演演算法不好,這段時間主要是複習基礎了,面試官誇我基礎很紮實,應該二面穩了,面試體檢極佳

螞蟻金服(支付寶)二面 – 視訊面試 40分鐘

是個小姐姐程式設計師,聊了聊專案

問了下我們公司現在專案用到的技術棧

和一面一樣問了下我們公司自研的Spring有哪些不一樣

同樣講了講oracle和mysql的區別

講講不可重複讀是什麼

Jdk1.8有了解過CompletableFuture嗎(我沒有了解過,流下來沒技術的眼淚)

那你知道Future嗎(好像是Callable的時候返回值會用到它,又流下了沒技術的眼淚)

寫一個演演算法題吧,牛客網的 密碼合格校驗,寫了十多分鐘,全是靠if else解決的
小姐姐也說,這個寫的沒問題,但是需要更多的考慮更好的辦法,比如藉助java自帶的工具類等等。

說一些和技術無關的,你對你自己的技術發展有什麼想法(我就說,平時會多看看技術公眾號,看B站學習技術,會關注很多新技術然後跟著學習,想去更大的平臺通過實際場景的應用豐富自己的閱歷)

美團(美團打車)一面 – 視訊面試 40分鐘

String,StringBuild,StringBuff的區別

StringBuff為什麼是執行緒安全的

ArrayList和LinkedList的區別是什麼

以上二位是執行緒安全的嗎,怎麼實現執行緒安全

Vector實現執行緒安全的原理是什麼

多執行緒程式設計中你知道哪些都是保證執行緒安全的

Volatile的底層實現是什麼

執行緒池瞭解嗎,說說工作原理

記憶體溢位說一下

棧溢位說一下

要實現一個OOM和棧溢位,怎麼實現

說一下你常用的垃圾回收器

Stop the world 解釋一下

CMS的工作流程是什麼

Spring中bean的作用域

Spring中bean的生命週期說一下

說一下你在專案中遇到的印象深刻的問題是什麼,有什麼收穫

Redis的持久化怎麼實現的

寫一道程式設計題,leetcode 第一道經典題目–兩數之和

對美團打車有什麼想了解的嗎(問了下美團打車和滴滴高德打車的區別)

位元組跳動 視訊面試 – 30分鐘

簡單介紹了一下專案

HashMap介紹一下

為什麼要用紅黑樹的結構

紅黑樹一般都會用在哪些場景中

Oracle的索引瞭解嗎

Mysql的索引底層實現是什麼

B+樹的實現原理了解嗎

Mysql事務特性瞭解嗎,具體說一說

Mysql的事務隔離級別瞭解嗎

Mysql的事務隔離級別是怎麼實現的

演演算法題:[(5,7),(1,6),(15,50),(60,90),(35,37)] 合併二元陣列 輸出[(1,7),(15,50),(60,90)]

演演算法題:分層列印二元樹

演演算法題:反轉連結串列起網路

一般技術面到後面,面試官都是leader或者是部門老大,他們其實很關心你的職業規劃、對待工作的態度、團隊合作的能力、自我價值實現方面的思考,當然還有專案實現的能力,過往專案經驗和深度。所以最好自己先想想怎麼用簡短的話表述清楚。注意圍繞關鍵詞去說。

寫給看到最後碼友的話

這些算是我作為過來人對於應屆畢業生和剛工作不久的同學的一些小小建議吧。

(1)一定要緊跟技術前進的腳步,尤其是巨量資料相關的技術,在技術更迭的時候一定要學習熟悉新技術,看原始碼,哪怕自己在工作中用不到也一定要學。因為這是你下一份工作的敲門磚。

我作為一個老兵,在上一家公司工作4年,我沒有逼迫自己學習新技術。

結果現在面試碰壁,其實大部分原因就是人家用的都是主流技術,你不會你就被淘汰。

(2)不要給自己設定舒適區,這個就是說,一個公司待久了不要懶惰,不能荒廢自己,始終要保持清醒的頭腦和進取心,不斷學習,不斷完善自己的技術,架構設計能力,專案管理能力,交付能力等。

一定要及時從專案中總結經驗和不足,最好落實到日記本中,最後通過不斷思考,形成自己的做事方法論。

(3)對自己的職業生涯要有一個規劃,以後要做哪一塊一定要有自己的想法,確定了就要從這個方向完善自己,多學多練。

目前巨量資料這一塊,有資料中臺架構的公司不是很多,除了演演算法崗外,大多數人在團隊中都是1專多能的角色,今天干幹ETL,明天搞數倉,後天又給BI出資料,可能又搞排程系統、報表系統、標籤系統、反作弊平臺等平臺。

沒有人會專一做某一塊,但是自己一定要想好哪一塊是自己以後要走的方向,那麼這一個方向確定了就要深入的學習這一塊的知識,多看原始碼,多做練習,如果接觸到具體專案,要在專案中沉澱自己,最後形成自己的知識體系。

(4)做事情要有擔當,不要根據OKR給自己設定界限,有能力有空閒多做一定要多做,這也是別人認可你的最佳途徑之一。網際網路圈子很小,大家認可你,以後去大廠,換個好工作,也許就更容易。

最後
在這我也分享一份大佬自己收錄整理的Java學習PDF+架構視訊+面試檔案+原始碼筆記,還有高階架構技術進階腦圖、Java開發面試專題資料,高階進階架構資料這些都是我閒暇還會反覆翻閱的精品資料(主要是我把其他雜亂的不成體系的都刪了~)

MySQL進階面試突擊(資料庫理論+MySQL使用+MySQL底層實現)

Java核心技術筆記

Java核心技術筆記

Java面試神技

總之也是在這裡幫助大家學習提升進階,也節省大家在網上搜尋資料的時間來學習,也可以分享給身邊好友一起學習

如果你有需要的話,可以幫忙點個三連

戳這:免費領取

你的支援,我的動力;祝各位前程似錦,offer不斷!!!