電話面試:
第一次面試關注的問題,
1)java基礎:
jvm 內存回收,垃圾回收基本原理,Java並發包的線程池,Java8的新特性。nio 堆排序。conrenthashmap , concurrenthashmap 的size實現, spring的事務
2)數據庫基礎:
事務隔離級別,數據庫連接池,鎖性等。。MQ如何保證順序性。spring事務傳播性。 數據庫垮庫一致性
數據庫死鎖的問題,一個刪除昨天一個刪除今天的,怎么死鎖的。
還有hashmap在並發情況下會出現什么現象? http://www.cnblogs.com/ITtangtang/p/3966467.html
還有個延遲隊列和隊列排序的問題。
3)如果項目中有用到框架:Redis,RPC、Kafaka、MQ 、Spring 等。
問到的問題比如springmvc工作機制、Spring MVC的aop實現原理,Spring MVC 的請求過程,一個Controller是單例還是多實例。再比如Redis,在項目里面承擔了核心緩存左右,選擇的持久化方式是什么。redis恢復。Redis的內存廢棄策略。redis高並發的key怎么處理。
非常注重源代碼,不管是jdk的,還是框架的
還有比如spring,redis源代碼的實現
架構方面,分布式框架和中間件問題:
dubbo原理
zookeeper原理
netty原理
高並發綜合策略 數據一致性處理策略
4)線上問題處理經驗
5)表達對技術的鑽研熱情
第二次電話面試是交叉面試,同上。
第三次是現場技術終面+HR面
P6的考察側重點
1、80后。
2給人的感覺是上進心很強,努力學習精進技術的,不願意混日子。
過往的工作經驗是owner一個獨立的業務系統,負責系統的設計開發工作,可以不是架構。明確知道系統架構的情況,理解上下游關系。理解該系統的業務定位,該系統當前存在的問題和后續的規划發展有自己的見解。
3 Java基礎知識和分布式經驗應該很熟悉,框架層面源碼如果能研讀可以加分。但是如果只是會用而不了解原理就要減分。
4會重點考察分布式/服務化系統(不是大流量高並發)的設計原理,思路,關注點。要會理解一些分布式session、全局流水ID號、服務多次重試冪等、同步轉異步、服務監控、最終一致性等原理和應用。
P7的考察側重點
1 敢說敢做,有氣場勇於承擔事情
2不是一個單純的技術實現人員,而是一個有規划,有思考的人。主導一個復雜的系統(多個業務系統完整鏈路);或者負責一塊五臟俱全的業務。
3 對業務系統的理解會更多從商業價值角度去描述,熟悉這塊產品鏈的模式和玩法,或者工業化成熟度較高的專業實現方案。
對基礎中間件系統可以描述常見競品、實現原理算法、核心難點。
4如果是電商交易類背景的,分布式系統設計原則要比P6的同學理解更深入:分庫分表分布式事務、性能穩定性的實踐。
如果能描述分庫分表中間件實現原理(SQLParse、語法樹)、單元化/多機房災備可以加分-就可以往P7+、P8去談。
5 P7的同學開放式的問題會比較多,會更多在答題思路和內容中去挖掘亮點。