跳至主要內容
YIM NEWS

分析

帆軟一面題目流出:把「你真的懂嗎」問到底的面試,長什麼樣子

一份帆軟後端一面題目在牛客網流傳,整場面試從簡歷追問到Java並發細節,這篇文章從考題結構分析企業級軟體公司在篩選什麼樣的工程師。

科技 分析
刊登:(台北時間) 閱讀約 5 分鐘
帆軟一面題目流出:把「你真的懂嗎」問到底的面試,長什麼樣子 封面版畫

一份帆軟軟體的後端一面題目近日在牛客網流傳,發文者形容這是一場「比較有意思的面試」,但也自嘲「豬腦過載」。從逐題記錄來看,這場面試的特徵非常鮮明:每一個概念都不停在第一層答案上繼續往下鑽,直到求職者答不下去為止。

面試怎麼開始:先驗簡歷的真實成分

題目單的開頭不是技術題,而是對簡歷的連續追問。應聘者的專業是網路空間安全,面試官依序問:這算純軟體方向嗎?偏密碼學還是網路攻防?是區塊鏈方向嗎?那你為什麼做純後臺開發?Java 是自學的嗎?透過什麼途徑學的?

接著追到實習經歷。應聘者提到在滴滴實習三個月,面試官問做的內容是不是「為了完成資料分析 Agent 的能力做擴展和增強」,再往下追:印象最深的是哪個?資產查詢的背景是什麼?批量接口是你自己開發的嗎?方案是獨立完成還是導師帶著做?

這一段最值得注意的是跨部門溝通的追問方式。面試官問:去找對方小組長時,是導師陪你一起去,還是導師告訴你找誰之後你自己去?你直接去找了?怎麼迅速達成一致?做了哪些努力讓對方接受你的方案?

這些問題在驗證一件事:這段經歷裡,哪些部分真的由你動手。實習簡歷上寫「參與」的項目,經過這樣的追問,自己是主人還是旁觀者,幾個來回就會現形。

主菜:把一個 volatile 問到見底

技術題的核心是 Spring 單例與 Java 並發。從「IOC 是什麼」開始,進到單例的實作方式,然後要求現場手寫雙重檢查鎖(Double-Checked Locking)。

接下來的追問鏈是整份題目單最精彩的部分:為什麼要加 volatile?最外層判空的作用是什麼?外層已經判空,裡面為什麼還要再判一次?刪掉外層會怎樣?刪掉內層會怎樣?volatile 除了可見性還有什麼作用?重排序會出什麼問題?賦值語句有沒有重排序問題?結合建立物件、初始化、賦值這三步,加不加 volatile 在業務上有什麼差別?物件還沒初始化就被引用會出什麼事?

用一個日常比喻:雙重檢查鎖像家裡只有一臺印表機,全家都想用。第一層判空是先看一眼印表機是不是已經開著,沒開才去排隊拿鑰匙;拿到鑰匙後的第二次確認,是防止你排隊時前面的人已經把它開好了。volatile 則像是規定「開機這件事必須按說明書順序做完才能宣告完成」,否則可能出現印表機燈亮了、紙還沒裝,別人衝過來印就出錯。面試官問的每一層,都是在確認你只是背了模板,還是真的理解這臺機器怎麼運轉。

HashMap 一條線,問到並發的坑

同樣的鑽法用在 HashMap 上:結構是什麼?衝突時才往鏈表上插嗎?這是拉鏈法嗎?擴容怎麼執行?為什麼一定要新開一個兩倍大的 table,不能原地擴?接著轉到執行緒安全:HashMap 執行緒安全嗎?要安全該用什麼?ConcurrentHashMap 原理?CAS 是什麼?CAS 有什麼問題?ABA 問題怎麼理解、怎麼解決?

最後甚至回到一個開放場景:只在陣列、鏈表、擴容的前提下,並發 put 再 get 會出什麼異常?鏈表指標被覆蓋,除了 get 不到,對 JVM、對應用還有什麼影響?會不會造成記憶體洩漏?

這類問題在後端面試中反覆出現,與先前分析的TikTok 後端一面考題主菜換成 Agent、以及拼多多服務端一面題目呈現同一個趨勢:基礎資料結構與並發細節仍是第一輪的硬門檻,差別只在各家公司往上疊什麼。

演算法收尾:考的是思路的備援

演算法部分沒有刁鑽題。快排原理與複雜度,已有序資料時的退化,怎麼優化,隨機基準、三路快排。最後一題是經典題:一到一百亂序丟一個數,給你九十九個怎麼找?追問除了陣列、Map、求和之外還有別的方式嗎?只能用位運算可以嗎?

這一題的價值在追問。求和法多數人都會,面試官要的是你有沒有第二條路(XOR),以及被提示後能不能接住。

這份題目單對求職者的訊號

帆軟是做企業級報表與商業智慧軟體的公司,這類產品的後端大量處理資料讀寫、併發查詢與服務間呼叫。整場面試幾乎沒有框架炫技題,重心全放在兩件事:經歷的真實性,以及對基礎元件在並發場景下行為的理解深度。

對準備後端面試的人,這份題目單給的判斷很具體:八股背誦的第一層答案已經不夠用,面試官會在同一個概念上連續追問四到五層。準備的方法隨之改變,與其多背幾個新名詞,不如挑五個核心概念(單例、volatile、HashMap、CAS、快排),每個都往「刪掉某個條件會發生什麼」的方向自己問到底。能在追問的第五層還站得住,比在第一層答出十個名詞有用。

主題

#帆軟+面試趨勢#java+後端開發#軟體公司+人才篩選