畢業轉行做開發5年以來, 學到了很多, 加上自己的興趣愛好, 個人認為已經成為了一個合格的程式設計師.
與剛開始找工作面試相同的是都會問一些相同的問題, 不同的是現在面試官會更注重為什麼, 也就是說注重深度而非廣度. 3年, 5年, 10年分別是個人從事技術方面職業規劃中的一個坎, 3年大部分時間應對了業務邏輯, 培養良好的規範和思想, 基礎知識還是欠缺.
找工作時, 除了薪資符合個人職業規劃也是相當重要的.廢話少說, 以下是我前兩天面試總結的面試題.
- 集合
- hashmap結構及原理
- 擴容因子, 如何擴容, 資料結構圖….
- ArrayList, LinkedList 原理及區別(畫出資料結構)
- 集合四要素: 是否可重複, 是否允許空值, 是否有序, 是否執行緒安全…
- 執行緒安全集合,map 為什麼是執行緒安全的, 哪些操作關係到執行緒安全
- 演演算法
- 說幾個常見的排序演演算法, 實現原理, 對應的時間空間複雜度, 穩定性
- 手撕一個演演算法(書寫): 可以選擇冒泡
- 遞迴演演算法
- 物件導向
- 多型的表現
- 物件導向特徵
- static的用法
- String StringBuilder區別, 什麼情況下用’+’. 最好答出javap編譯後’+’實現原理
- 多執行緒
- 執行緒的實現方式
- 執行緒的狀態
- 常見執行緒池及使用
- 一個執行緒結束開始另外一個執行緒的實現方式
- 執行緒原理(ThreadLocal)
- start與run的區別
- 悲觀鎖樂觀鎖
- IO流
- 寫一個讀寫檔案
- 事務相關
- 事務機制
- AB分別是一個事務, C裡面有A, B, 如果C裡A或B失敗回滾C是什麼狀態
- 什麼是事務及使用場景
- 框架相關
- Spring , MVC, MyBatis
- 介紹下Spring以及其常用的註解, Spring IOC實現原理, AOP實現原理及使用場景, 依賴注入原理
- Spring事務傳播與隔離級別
- MyBatis對映原理
- 分散式相關架構
- 系統架構介紹, 架構設計圖以及什麼場景使用了什麼架構
- Dubbo機制, Zookeeper機制以及他們的關係
- Redis資料型別以及使用場景, 重新整理時間間隔
- Kafka介紹及使用場景承擔的角色
- 講述一下Storm
- 資料庫
- MySQl
- mysql資料庫儲存型別及其優缺點
- 分散式分片分庫設計, 主從結構
- sql優化
- 索引建立原則(手寫一個SQL)
- SQL集中DDL, DMl==
- 建表的規則或者注意事項
- 資料庫隔離級別及原因
- 設計模式
- 介紹下常見的設計模式以及使用場景
- 寫一個單例模式實現
- HTTP相關介紹,
- GET, POST的區別
- JVM相關
- Java垃圾回收機制
- Java記憶體結構(與回收機制有關)
由於篇幅限制,沒能把答案展示出來。不過我已經把面試題及答案整理成了面試專題檔案,有需要獲取的朋友幫忙點贊後,私信我【面試】就可以了(一定要記得關注我,不然沒辦法回覆陌生人私信)。