螞蟻金服、字節跳動、PDD社招面經Java崗(分佈式+線程安全+MySQL+CAS)

拿了螞蟻和pdd的offer,寫下面經

螞蟻金服

一面

算法題,給了長度爲N的有重複元素的數組,要求輸出第10大的數。

需要在2小時內完成。

二面

自我介紹

目前在部門做什麼,業務簡單介紹下,內部有哪些系統,作用和交互過程說下

Dubbo踩過哪些坑,怎麼解決的?

對線程安全的理解

樂觀鎖和悲觀鎖的區別?

這兩種鎖在Java和MySQL分別是怎麼實現的?

事務有哪些特性?

怎麼理解原子性?

HashMap爲什麼不是線程安全的?

怎麼讓HashMap變得線程安全?

jdk1.8對ConcurrentHashMap做了哪些優化?

redis主從機制瞭解麼?怎麼實現的?

有過GC調優的經歷麼?

有什麼想問的

三面

自我介紹

接下來就是全部問的項目,對自己的項目細節逐個盤問,最後問了下如何改進方案

有什麼想問我麼?

四面

介紹下自己

問項目

說說Spring的生命週期吧

說說GC的過程

強制young gc會有什麼問題?

知道G1麼?

回收過程是怎麼樣的?

你提到的Remember Set底層是怎麼實現的?

CMS GC有什麼問題?

怎麼避免產生浮動垃圾?

有什麼想問的麼?

五面

HRBP面,主要聊了部門在做的事情、職業發展、福利待遇等。阿里面試官有一票否決權,很看重你的價值觀是否match。

HR面一定要誠實,不要說謊,只要你說謊HR都會去證實。

最後HR還對我說目前穩定性保障部挺缺人的,希望我儘快回覆。

小結

螞蟻面試比較重視基礎,所以Java那些基本功一定要紮實。

拼多多

一面

聊項目

Java中的HashMap、TreeMap解釋下?

TreeMap查詢寫入的時間複雜度多少?

ConcurrentHashMap怎麼實現線程安全的?

HashMap多線程有什麼問題?怎麼解決?

CAS和synchronize有什麼區別?都用synchronize不行麼?

get需要加鎖麼,爲什麼?

volatile的作用是什麼?

給我一張紙,畫了一個九方格,都填了數字,給一個MN矩陣,從1開始逆時針打印這MN個數,要求時間複雜度儘可能低,可以先說下思路

有什麼想問我的?

二面

自我介紹下

手上還有其他offer麼?

部門組織結構是怎樣的?

系統有哪些模塊,每個模塊用了哪些技術,數據怎麼流轉的?給了我一張紙,我在上面簡單畫了下系統之間的流轉情況

鏈路追蹤的信息是怎麼傳遞的?

SpanId怎麼保證唯一性?

RpcContext是在什麼維度傳遞的?

Dubbo的遠程調用怎麼實現的?

Spring的單例是怎麼實現的?

爲什麼要單獨實現一個服務治理框架?

誰主導的?內部還在使用麼?

逆向有想過怎麼做成通用麼?

有什麼想問的

HR面

主要問了些職業發展、是否有其他offer、以及入職意向等問題,順便說了下公司的福利待遇等,手上有其他offer或者大廠經歷會有一定加分。

字節跳動

一面

自我介紹

聊項目

Redis熟悉麼,瞭解哪些數據結構? zset底層怎麼實現的?

紅黑樹瞭解麼,時間複雜度?

既然兩個數據結構時間複雜度都是O(logN),zset爲什麼不用紅黑樹

線程池的線程數怎麼確定?

如果是IO操作爲主怎麼確定?

如果計算型操作又怎麼確定?

跳錶的查詢過程是怎麼樣的,查詢和插入的時間複雜度?

說下Dubbo的原理?

CAS瞭解麼?還了解其他同步機制麼?

做題:數組A,2*n個元素,n個奇數、n個偶數,設計一個算法,使得數組奇數下標位置放置的都是奇數,偶數下標位置放置的都是偶數。先說下你的思路

你有什麼想問我的?

二面

自我介紹

問項目

分佈式追蹤的上下文是怎麼存儲和傳遞的?

SpringMVC不同用戶登錄的信息怎麼保證線程安全的?

我們聊聊mysql吧,說下索引結構,爲什麼使用B+樹?

Dubbo的RpcContext是怎麼傳遞的?主線程的ThreadLocal怎麼傳遞到線程池?你說的內存泄漏具體是怎麼產生的?

線程池的線程是不是必須手動remove纔可以回收value?那你說的內存泄漏是指主線程還是線程池?

什麼是索引覆蓋?

Java爲什麼要設計雙親委派模型?

什麼時候需要自定義類加載器?

做題:手寫一個對象池

有什麼想問我的

小結

頭條的面試確實很專業,而且面試官最後給我了一點建議,就是研究技術的時候一定要結合技術的背景。

面試官都有一個特點,會抓住一個值得深入的點或者你沒說清楚的點深入下去直到你把這個點講清楚,不然面試官會覺得你並沒有真正理解。

螞蟻金服、字節跳動、PDD社招面經Java崗(分佈式+線程安全+MySQL+CAS)

我收集的面試題及答案整理:Java基礎,Jvm,Redis,Mysql,Zookeeper,Tomcat,Docker,Nginx等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章