“lz”是非科班自學的java,畢業後進入卡中心,現在是2年開發經驗。20年年初先後面了頭條、拼多多和阿里(淘寶和支付寶),併成功拿到阿里和頭條兩家的offer。
面試前我主要是不斷的刷題且看了很多大牛的面經進行查漏補缺,所以面試完後也想記錄下來,權當給大家提供點信息吧。(面試過了一週了,記憶也有點混亂,爭取想到多少就記下來多少)。
順便提一下面試體驗:頭條 > 阿里 > pdd
拼多多最垃圾的面試體驗,沒有之一。我約的視頻面,結果面試官說有事給我打電話面,然後給我一個文檔,是一個算法。我在寫算法的時候沒察覺到電話信號不好斷掉了。然後我回撥過去,面試官來了一句:你不要故意掛斷電話去查答案。我%@#¥@#%@5,保持微笑解釋信號不好。後來爲了信號好一點我去陽臺面試,凍的瑟瑟發抖,這個時候心態已經炸了,又冷又緊張,算法題有思路但是一直被這個人否定,最後掛了。
頭條
最開始面的頭條遊戲中臺,當時是第一次面試,沒有經驗,導致算法題雖然有思路,但是沒有寫出最優解,直接掛了。後來又被撈起來,因爲此時已有阿里的offer,所以膽子也大起來了,收拾心情開始面頭條。
頭條的面試特點基本就是一個套路:【自我介紹】->【項目介紹】->【手撕算法】->【基礎知識】,屢試不爽。
- 自我介紹:我是xxx,來自xxx,畢業後在xxx幾年,期間負責xxx。
- 項目介紹:xxxxx。項目的時候面試官會問你難點和解決方案,同時會給你提出場景,問你更優化的思路。
- 手撕算法:多刷題,也可以看看別人面過的算法題,可能會重複。
- 基礎知識:針對簡歷寫的東西問,我被問的較多的是一些中間價,Redis、MySQL、Kafka、ElasticSearch,Java基本沒問,因爲頭條這邊使用Go。
一面
- Two Sum
- 給定m個不重複的字符 [a, b, c, d],以及一個長度爲n的字符串tbcacbdata,問能否在這個字符串中找到一個長度爲m的連續子串,使得這個子串剛好由上面m個字符組成,順序無所謂,返回任意滿足條件的一個子串的起始位置,未找到返回-1。比如上面這個例子,acbd,3。給定m個可能重複的字符[a, b, d, d]呢?
- 提供一個整型數組以及一個整數s,如果該數組中存在n個連續元素,且元素相加之和大於等於s,則返回滿足該條件的連續元素的最小長度;否則返回0
- MySQL集羣。假如集羣出現延遲怎麼處理。
- Redis的zset實現延時任務
- 設計題:如何設計tiny url
- 爲什麼要四次揮手
- HTTPS
第二天收到hr小姐姐的電話,約了面試時間。
二面
- 自我介紹
- 項目介紹
- K Group反轉鏈表。寫了棧和迭代兩種實現方式,鏈表的題寫起來很痛苦,很容易邊界出錯。
- Redis的持久化機制
- MySQL的隔離級別
- MySQL索引,聚簇索引和二級索引
- Redis高可用方案
- 介紹一些Kafka的一些概念
- Kafka如何保證消息有序
...忘了
過了一天又收到hr小姐姐的電話,開心。
三面
- 自我介紹
- 項目介紹
- 第K大的數
- 設計題:秒殺系統
- MySql的索引優化
- HTTPS
...忘了
三面完了正好是週五,忐忑的等到了週一,以爲掛了。結果下午收到hr加微信,約了hr面。
hr面
- 爲啥離職,怎麼想的
- 介紹項目
- 怎麼和團隊的人溝通,和成員出現衝突時怎麼解決。
- 期望薪資,你現在的薪資
三個工作日收到了offer,頭條面試體驗還是很棒的。
找朋友內推的螞蟻金融核心,結果第二天就被拒了,杭州淘寶給我來電話,說我被撈起來了。確認了一下,確實如此,那就面吧。
阿里
還是很想去阿里的,所以也很忐忑,淘寶一共經歷了4輪技術+1輪筆試+hr面,流程很長,面的我壓力山大。
阿里的面試特點:【自我介紹】->【項目介紹】->【場景解決】->【基礎知識】,阿里面試除了基礎以外,也很看重候選人的解決問題的思維。還是需要候選人有點積累的,假如你寫的項目不是自己的,很容易就被問出來。
一面
- 自我介紹
- 項目難度介紹
- 如何實現延時任務
- 如何實現限流
- 線程池的參數
- 能不能自己實現一個java.lang.String並加載
- Redis爲什麼這麼快
- epoll和poll的區別
- 進程同步的方式
二面
- MySQL的索引機制
- 如何自己實現內存分配和管理?不太懂,然後說了jvm的垃圾回收機制
- 你們公司內部的RPC框架,介紹一下
- Redis的key過期策略
- 緩存穿透和緩存雪崩
- 分佈式鎖
- 如何實現全局的id生成策略
- 悲觀鎖和樂觀鎖
- 紅黑樹瞭解麼
三面
- 如何實現羣消息已讀
- 消息推送如何保證不重複
- Kafka如何保證消息的可靠性
- RPC是什麼,和http調用有什麼區別
- 說一說你項目的架構
- GC
- MySQL的索引原理,給了一個場景,如何優化
...忘了
面完3面後居然又來了一個筆試題
筆試
- producer-consumer
- 兩線程交替打印
- 多線程模擬100分錢隨機分給20個人,每個人最少分配到2分錢
四面
- 寫個producer-consumer吧,我說上次寫過了。。傻了。。不該說的,然後面試官換了一道題,還好比較簡單,寫個二分查找,2分鐘寫完完事。
- 項目難點
- MVCC
- HTTPS
- ElasticSearch的查詢過程
- Kafka如何保證高可用
- Reids的集羣和選主
- 知道什麼分佈式一致性算法
- 如何實現定時關單
...忘了
HR面
阿里的hr面真是讓我難忘。
- 說說看,假如你是部門技術經理,線上商戶數據丟失怎麼辦
- 怎麼將一個產品推薦給其他的團隊,怎麼界定邊界
- 怎麼樣協調關係
(我才2年啊喂,到這裏我已經快冒汗了,生怕最後一關斃掉了) - 你和同事相處的情況怎麼樣,說說你幫助同事的一次經歷
- 薪資
阿里的面試流程很長,而且一個部門掛了以後,會被另一個部門撈起來,不停的面。總之來說,阿里的面試體驗也還不錯,就是經常被放鴿子。
支付寶的面試經驗其實也大同小異,我就不貼了。
覆盤經歷
1、衆所周知,面試這些大廠算法和底層是必不可少的一部分、所以刷題也是圍繞着這方面進行,押題大神左程雲的《程序員算法面試指南》對我幫助特別大,學習起算法來也是通俗易懂。(532頁,幾百道算法題)
2、刷題終究是必不可少的,籌備了好幾本面試寶典和一份Java核心知識寶典,共計有上千道面試題,抽空就刷題複查,其中技術點概況了:java基礎、jvm、多線程、高併發、分佈式、Redis、spring全家桶系列、dobbo、mysql、網絡協議、mybatis、ZK、nginx、kafka等等
3、Java面經,總結他人之長處彌補自身的不足,來自一羣大牛的面試經歷親述,有面試美團、騰訊、阿里等等。
整理分享不易,對個人覆盤面試資料、面經等等感興趣的朋友們可以點贊+關注,點擊這裏免費領取
祝大家在今年金九銀十能拿到心儀的offer!