快⼿⾼開及以上職級⾯試 是沒有筆試或者機試的,因此從第⼀輪開始 就是直接⾯對⾯試官。面試
1快手⼀輪 面試
主要考察對Java基礎的理解和深⼊程度。數據結構
Spring 原理,Spring IOC、AOP。架構
這個問題 最好能夠多說⼀點,⽐如 對於IOC,不妨把Bean 如何加載、如何初始化以及如何註冊到 IOC容器中的詳細過程說⼀下, 涉及BeanDefinition、BeanFactory也深⼊細節聊⼀下。框架
⼀個請求過來在Spring中發⽣了哪些事情。maven
這個問題 不妨把 ⼀個請求過來 在TCP層⾯上 建⽴鏈接、操做系統如何處理鏈接、Web容器接收到 鏈接對象後作了哪些事情、Spring 如何對接收到的請求進⾏處理 都說⼀下,固然最終仍是 落在 Spring 容器內部如何處理⼀個請求,這個過程⼀定要說清楚,須要體現細節。在說前⾯的內容的 時候,能夠放⼼ ⾯試官不會打斷你。ide
⼿寫⼀個棧,實現 push,pop⽅法,以及 max(獲取最⼤的元素) ⽅法,要求時間複雜度爲 O(1)。 優化
這是⼀個考察數據結構的問題,⼀⽅⾯須要候選⼈對數據結構有所瞭解,⼀⽅⾯ 也須要候選⼈對 代碼有駕馭能⼒(畢竟要⼿寫代碼)。⾯試官會給⼀定的時間,在這段時間⾥ ⾯試官不會打擾你,並 儘量爲你提供⽅便,⽐如 簽字筆很差⽤ ⾯試官會幫你更換。據我個⼈經驗,凡是⾯對須要寫代 碼的問題,都不要急着放棄,靜下⼼來,仔細思考,都是能夠寫得不錯的。若是沒能寫出來,⾯試 官會問你實現思路,若是你的思路很優化,⼀樣能夠過了這道題,可是前提是 你的代碼 不能⼀⾏ 都不寫。 操作系統
對於數據結構的考察的話,我建議 看⼀下 jdk中對於 List、Stack、Tree、Set 的實現,⽐如 ⾄少 你要知道 若是讓你實現⼀個單鏈表 你會如何實現,⽐如 你可能會定義⼀個Node節點,⾥⾯有 當 前節點的key和value,還有對於下⼀個節點的引⽤。若是熟悉jdk對於各類數據結構的實現,這道 題是很容易過的。線程
JVM內存結構 對象
這個問題 須要你能畫出JVM內存結構的圖,畫出 ⽅法區、堆、程序計算器、虛擬機棧、本地⽅法 棧,並說出每⼀個部分具體是什麼做⽤,⽐如 哪些是線程共享的,哪些是線程獨享的,哪些地⽅ 存放了什麼數據,爲何會這樣存放,哪些虛擬機參數對這些空間⼤⼩是有影響的,能夠如何配 置。這些都⽐較常規。
⼿寫⼀個單例
這個基本上⼤多數公司都會考察的。要寫⼀個 基於懶漢式的 雙重檢測的 單例。單例有三個⽐較關 鍵的點,⼀ 是 私有構造⽅法,避免外部new出對象;⼆是 保證惟⼀性;三是 提供⼀個全局訪問 點。
另外 懶漢式雙重檢測的實現⽅式 有三點須要注意的地⽅,⼀是 全局訪問點必須是靜態的,外 界使⽤能夠經過類直接調⽤,⼆是 在進⼊鎖以後還須要校驗,三是 保存單例對象的私有變量 ⼀定 要⽤volatile修飾,這個地⽅ 能夠多說⼀些,⽐如 volatile防⽌指令重排序,保證內存可⻅性(JVM 層⾯ 和 CPU層⾯ 能夠分別說)。
volatile 這個地⽅ 能說的東⻄ 仍是不少的,基本上 能夠與⾯試官 再聊⼆⼗分鐘了。
HashMap
JVM四種引⽤類型
這個問題⽐較簡單,強引⽤、弱引⽤、軟引⽤、虛引⽤,說⼀下它們各⾃的特色和GC對它們的不 同處理⽅式,再說⼀下 常⻅的應⽤場景 或者 jdk的實現中 對它們的使⽤,⽐如 ThreadLocal 的 靜 態內部類 ThreadLocalMap,它的Key是弱引⽤的,也能夠說⼀下 在你的理解中 爲何它是弱引 ⽤的,假如不是 會怎麼樣。
SpringBoot 啓動過程
這個主要是從它基於Spring的事件發佈和監聽機制開始提及 就沒什麼問題。
2快手⼆輪面試
繼續考察Java基礎,和對應⽤技術的掌握,⽐如過往項⽬中所⽤的⼀些框架,在這⼀輪中會被問到。
類加載過程
加載 連接 初始化,連接⼜分爲驗證 準備 和解析,每⼀個階段 是作了什麼 要說清楚。
Object a = new Object();
這⾏代碼作了哪些事情,須要從類加載開始提及,這個至關於上 ⾯問題的延續,因此 ⼀定要清楚 每⼀個環節 作了哪些事情的,不然 這個問題 不可能說清楚。說 完類加載的過程 再說⼀下 開闢內存空間、初始化內存空間 以及 把內存地址賦值給變量a,接下來 能夠進⼀步說⼀下 JVM 或者CPU層⾯對指令的優化,以及 在某些時刻 咱們須要 避免它作這樣的優 化,⽐如 在單例中咱們的實例須要⽤volatile修飾 避免指令重排序(能夠說⼀下 在new⼀個對象的 過程當中若是指令重排序了 會致使什麼結果)。
接下來主要是對過往項⽬中⽤到的框架、⼯具的考察
maven的熟練程度
⽐如問問有哪些類型
Linux命令⾏的熟練程度
⽐如 問問 ${} 和 $() 區別
消息隊列的熟練程度
⽐如問問Kafka分區,如何分區 等等(由於我過往項⽬經驗中寫了kafka,因此纔會被問及,如 果寫了其餘消息隊列,也可能會被問及)
Netty
從NIO開始說 確定是沒錯的,再說說Netty的實現⽅式,以及它除了IO以外還⼲了哪些事情。
3快手三輪面試
這⼀輪主要考察對於過往項⽬的業務理解
根據過往項⽬經驗 依次介紹業務
這就須要 在⾯試以前 把⾃⼰的作過的項⽬ 好好總結⼀下,它們主要作的業務是什麼,解決了什麼 問題,架構是什麼樣的,以及你在其中作了哪些⼯做。這個地⽅⼀定要準備充分,⾄少要能扛得住 ⾯試官三連問。不然會被認爲 你不太清楚大家以前作的究竟是什麼,那你在業務能⼒⽅⾯ 多是 不太match的。
你有什麼問題想問⾯試官的
這個地⽅ 因⼈⽽異,但⽆論怎樣,都不要什麼都不問,⾄少你要表現⼀點對於崗位的興趣吧。⽐如問⼀下 公司業務,團隊構成,技術棧,以及你所應聘的這個崗位 ⼤概作哪些⼯做
4快手四輪面試
HR⾯試。這⼀輪能夠說是⽃智⽃勇的⼀個環節,會考察⼀些軟技能、個⼈成⻓、職業素質,也會問⼀下 指望薪資。