上一篇面試連環炮整體講述了業務中間件的應用實踐和spring全家桶常見的面試題連環炮,以及分布式微服務相關的理論和實踐,同時兼具深度和廣度的面試問題。本篇將從程序開發架構設計等其他角度去整理一系列連環炮發文方式。
手撕代碼連環炮
單例模式了解嗎?有哪幾種?寫個單例模式?這個單例模式有什么問題?sychronized怎么用的?volatile呢?
寫個冒泡算法?
假如有個數組[1,2,3,3,4,4,5,6,6,7],相對遞增有序,給定一個值假如3,打印這個值在數組中出現的第一個索引下標?分析一下你寫的這個程序的時間復雜度。
寫個快速排序?非遞歸怎么實現?寫個二叉樹的前序遍歷?二叉樹的非遞歸中序遍歷?
假如有個數組[3,2,2,3,3,4,4,5,6,6,7,4,4,4],有重復數據,現在要去重,要求去重后的數組元素與原來數據的索引順序一致。分析一下時間復雜度和空間復雜度?有沒有更好的解法?思路是什么?
假如有個數組[1,3,7,3,8,4,9,6],現在要求數組中存在最大差值的兩個數的索引下標。條件是要索引下標大的減索引下標小的才可以。分析一下時間復雜度和空間復雜度?有沒有更好的解法?思路是什么?
手寫一個LRU Cache,保障get/put api都是O(1)的時間復雜度?
編寫一個程序實現最小棧?
網絡協議連環炮
網絡協議了解嗎?說一下7層網絡協議有哪些層?說一下我從瀏覽器輸入一個url訪問天貓網站整個過程經歷了什么?DNS是干嘛的?CDN了解嗎?干嘛的?假如我訪問12306,發現很慢,怎么排查?說一下http協議的請求頭有哪些?說一下https與http的區別?說一下http的狀態碼有哪些,代表什么意思?說一下HTTP中session和cookie的區別?說一下HTTP建立鏈接的過程?RPC框架用過嗎?是基于TCP協議的嗎?說一下TCP協議的握手和揮手過程?為什么是三次握手,四次揮手呢?TCP滑動窗口了解嗎?解決了什么問題?假如我的RPC服務出現了大量Timewait和closewait的鏈接應該怎么排查?TCP長鏈接和短鏈接了解嗎?有什么區別?分別適用于什么場景?
設計模式連環炮
你用過哪些策略模式?舉幾個例子?mybatis或者spring源碼閱讀過嗎?了解里面有哪些設計模式嗎?java類加載機制了解嗎?用的是什么設計模式?
單例模式用過嗎?寫個單例模式?還有其他實現方案嗎?有什么區別?
說一下什么是策略模式?有什么優缺點?說一下代理模式在哪些地方會用到?
假如我要對接第三方的系統,但是我自己的業務服務協議不支持,如果支持的話有一定改造成本,用哪種設計模式會減少對系統的侵入性?說一下適配器模式和橋接模式的區別?
業務系統架構連環炮
你好,我是xx公司的面試官我叫xx,你先做個自我介紹吧?說說你比較擅長哪方面?java后端?更詳細的呢?說說你怎么用這些技術的?說一下你比較熟悉的項目?說一下哪些系統或者大型模塊是你獨立作為owner開發的?有什么挑戰?畫一下業務架構圖?里面有哪些核心業務模型?業務領域有哪些?是微服務架構的話你這么多工程是通過什么分工的?為什么這么做?你覺得這個系統的架構模型有什么缺點?DDD了解嗎?如果是你你怎么梳理領域模型?不依賴任何具體框架你怎么設計工程架構和業務功能模塊?說說這么做的好處是什么?說幾個你熟悉的業務流程,在紙上/白板上畫一下?
hr連環炮
你好,請問你對我們的面試流程有什么想法?覺得我們的面試官怎么樣?我們公司的辦公環境怎么樣?你在上家公司主要是做哪方面的內容?有什么成長?你離開上家公司的原因是什么?說說你對上家公司的印象?工作氛圍怎么樣?請問你對下一份工作有什么要求嗎?想從事哪方面的工作呢?工作中遇到哪些令你印象深刻的問題?你是怎么解決的?說說你最近有沒有其他需要學習的地方?你平時是怎么學習的?你覺得你有什么優缺點?有女朋友嗎?我們公司目前會有加班,你可以接受嗎?你期望的最低薪資是多少?你現在面試了多長時間呢?手頭上有幾個offer?如果給你offer你大概最快什么時候可以入職呢?
性能優化連環炮
做過java程序性能優化嗎?假如我有一個RPC服務出現了FGC怎么排查?假如我有很多服務在不同的機器上,其中某個服務超時比較嚴重該怎么做? 假如我通過監控發現CPU飚的比較高怎么看?一條sql執行的比較慢你會怎么排查?RPC原理了解嗎?說說RPC的調用過程?假如你去設計一個RPC框架你會從哪些方面去考慮這個框架的性能和高可用?說說為什么要進行服務治理?微服務中引入docker/k8s有什么優缺點?你平時部署系統的時候用的持續集成系統是什么?有什么特色功能提高開發效率?做過性能測試嗎?如何評估一個接口的性能指標?假如我某個上游系統調用我的接口并發很高,我該怎么做?如果上游系統對時延比較敏感你該怎么做?如果上游系統是比較核心的應用不能限流怎么辦?
反問面試官連環炮
HR:請問你們公司一般上下班是大概幾點呢?請問你負責的這個部門目前技術團隊大概有多少人呢?請問你們公司未來準備招多少人?是不是處于業務上升期呢?聽說你們公司最近風評不太好,是真的嗎?現在手頭上還有其他offer,假如能給offer的話,你這邊能開出什么更有吸引力的條件嗎?目前公司的福利啥的能簡單介紹一下嗎?
面試官:我現在沒有什么問題了,你有什么要問我的嗎?我問一下你現在負責的大概是哪方面的內容?你們部門目前在公司是怎么樣的定位?你們部門團隊目前有多少人?請問你最近有沒有遇到過比較有挑戰的問題?你們部門做的這個系統有沒有考慮商業化呢?存儲系統怎么做的,Mysql?你能說一下你負責的這個業務的大體內容和流程嗎?我問一下剛剛面試的問題你有什么思路嗎?