六面天貓,已拿 offer,我的面經覆盤總結,大廠真的有那麼難進嗎?

喬一方發表於2022-02-22

分享一波阿里天貓超市一面到 hr 面的面經,文末有刷題指南分享

一面都是聊專案,聊了半個小時,主要包括這幾個問題:

1、專案介紹

2、專案中如何對資料庫進行優化

3、專案中的難點

4、你在專案中充當的角色

和麵試官聊了 35 分鐘,大部分時間是我在介紹,我把專案中自己負責的部分很詳細地說了出來。面試官很友好,對我給予了肯定,直接和我說通過了一面。兩個小時後就約二面面試時間了......

二面

1、自我介紹

2、分別介紹一下你的幾個專案

3、你覺得哪個專案讓你印象最深刻?

4、專案中一些關於 geohash 的問題

5、分庫分表的依據是什麼?有用什麼工具嗎?

6、執行緒的幾種狀態?

7、wait 和 sleep 分別屬於哪個類的方法

8、lock 和 synchronized 的區別是什麼

9、什麼情況下適合用偏向鎖?

10、BIO 和 NIO 的區別是什麼?分別適合於什麼場景?

11、select 和 epoll 的區別

12、說一下你知道的 Http 的請求頭和返回碼

13、String s = new String("abc") 產生了幾個物件?分別放在哪裡?

14、上面那行程式碼在 JDK1.8 前後存放的區域有什麼不同?

15、平時有用什麼工具觀察過虛擬機器的記憶體情況嗎?

16、平時怎麼學習的?有沒有關注什麼部落格和論壇?

17、有什麼問題?

二面感覺自己表現一般般,聊了 63 分鐘,也不知道自己有沒有過,不過全程和麵試官的討論很多,有些問題回答的不夠好面試官會給我提出建議。很幸運,兩天後的晚上接到了電話,因為那天是星期天所以很意外。那個時候剛好在路邊散步,突然接到電話一臉懵逼,腦子一熱就直接在路邊找個地方開幹了......

三面

1、自我介紹

2、專案中你對資料庫做了什麼優化?

3、對資料分庫分表了嗎?用什麼演算法進行分庫分表。。。

4、專案問題......

5、專案中你是根據什麼來進行索引的設計的?

6、專案中把資料放到 HBase 上面,你 rowkey 是如何設計讓資料均勻分佈在 RegionServer 上的?

7、一次請求的速度大概是多少?有考慮到做其它的優化嗎?(快取)

8、說一下索引的原理

9、知道 MySQL 插入和查詢分別用的是什麼鎖嗎?

10、知道悲觀鎖嗎?瞭解多少?

11、對併發的知識瞭解多少?

12、說一下 synchronized 的優點和缺點,與 lock 進行比較

13、說一下 ReetrantLock 的內部實現

14、對多執行緒這一塊瞭解多嗎?(我說了解一點,不是很多)他說:那好那問點別的

15、說一下 ArrayList 和 LinkedList 的區別

16、為什麼 ArrayList 的查詢時間複雜度為 O(1)?為什麼陣列查詢可以到 O(1)?

17、說一下你對 HashMap 的理解?說完......put 操作的流程大概是怎樣的呢?

18、現在有一億條資料,要求你利用 HashMap 對資料進行去重並排序,你會怎麼做?

19、多執行緒這一塊你真的不瞭解嗎?(???他想幹嘛,然後我把我知道的說了出來,包括實現的幾種方式,執行緒池這些)

20、執行緒池當佇列中的任務都執行完畢之後會對執行緒進行怎樣的操作?

21、多執行緒是不是肯定比單執行緒好?

22、什麼樣的任務適合用多執行緒什麼適合單執行緒?

23、單 CPU 的情況下適合用多執行緒嗎?

24、我看你裡面很多獎項,挑一個跟我講一講吧

25、有什麼問題嗎?

結果在路邊站了 78 分鐘,面完喉嚨都啞了,心臟跳得賊快,剛開始因為緊張講話支支吾吾,後面就好一些了。整個過程感覺這個面試官問的很仔細,對專案的細節問的很深,自己感覺也是一般般,就是那種好像可以過又好像不可以過的感覺......

兩天後,hr 打電話來了......約視訊面試

本以為技術面已經結束了,結果是自己想多了。視訊面是技術專家大佬和 hr 小姐姐兩個人一起面試

技術專家面

主要是針對專案然後提出一些開放性的問題讓你提出解決思路

技術專家:

1、你在工作室專案中的主要工作?

2、專案的架構是怎樣的?

3、如果現在讓你在廣州市投放計程車,你覺得計程車的數量會由什麼因素來決定?

4、設計一個叫車演算法

5、講一下資料庫索引的原理

6、資料分表你是按照什麼來劃分的?有用到什麼中介軟體嗎?

7、快排的實現原理是什麼?

8、瞭解堆排序嗎,為什麼堆排序的空間複雜度是 O(1)?

HR 面

HR:

1、剛才的交流過程中有些東西可能你沒有完全給我們展示出來,現在給你一點時間再讓我們多瞭解你一點

2、你平時有什麼愛好嗎?

3、你平時的生活情況是怎樣的?你和團隊中的人是如何相處的?

4、你平時是通過什麼方式學習的?

5、你覺得自己遇到最有挑戰性的事情是什麼?

6、你希望你未來想要加入的團隊是怎樣的?

7、有什麼問題要問的?

加起來一共面試了 45 分鐘吧,看到專家大佬超級緊張。面完之後心裡鬆了一口氣,終於熬到最後了~ 可是,還沒結束 T-T,hr 小姐姐和我說,如果你這次通過了,後面會有另一個部門的成員來面試你(也就是交叉面),我表面笑嘻嘻說好,心裡咯噔一下。

那天下午接到了電話,約我交叉面的時間

交叉面

1、自我介紹

2、解釋一下並行和併發的區別

3、如果我要讓 10 個執行緒併發同時開始執行,你要怎麼做?

4、你認為資料庫索引的設計需要考慮什麼因素?

5、知道索引的最左原則嗎?解釋一下

6、現在有 a b 作為聯合索引,有一條 sql 語句 where b > 0 and a = 7 和 where a>0 and b = 7 分別會用到索引嗎?

7、執行緒池使用時核心執行緒數和最大執行緒數的設計要考慮什麼因素?

8、(另一個專案)你主要負責哪個部分,難點是什麼?

9、併發下單的併發是在哪個部分?你通過什麼來防止超賣這種情況?

10、如果是分散式情況下你如何防止超賣的情況?

11、計程車專案的分庫分表是按照什麼條件進行的?

12、如果讓你設計一個叫車演算法,你會考慮什麼?如何設計?

13、geohash 是什麼,你能說一下嗎?

14、如何計算兩個 geohash 塊之間的距離?

15、有什麼問題要問的?

交叉面感覺比較難,面到後面有點自閉,覺得自己答得不好超級害怕。面了 45 分鐘也結束了。感覺不好

不過還好上天眷顧了我,三天後,我很幸運收到了錄用意向書。

總結

整體天貓的面試感受,面試官很專業,要求基礎知識很熟悉,面試之前一定要準備後再去面試。LeetCode 題目也要刷。

切記面試前一定要刷題和準備,簡歷上的專案不熟悉的千萬不要寫上去,寫上去的專案備好 2-3 個技術方案。

我個人認為,作為技術人就要保持終生學習的態度,讓學習力成為核心競爭力,才能不被時代所淘汰,而高效的時間支配能讓你變得更加優秀,所以,我在這裡將這份耗時兩個月整理出來的核心技能知識點,送給有需要的人,希望這份資料能對大家有所幫助

需要的可以文末新增助理,獲取資料

更多資料展示

相關文章