Java崗面試的重點:
數據結構與算法,JVM內存結構、垃圾回收器、回收算法、GC、併發編程相關(多線程、線程池等)、NIO/BIO、性能優化、設計模式、Spring框架:分佈式相關:Redis緩存、一致Hash算法、分佈式存儲、負載均衡等,微服務以及Docker容器等。在這由於文字很多,我總結了java面試所涉及到的常問範圍及常問面試題免費分享給大家,文末有領取!
面試:如果不準備充分的面試,完全是浪費時間,更是對自己的不負責。
一面(一個小時十分鐘)
1.自我介紹
2.說說B+樹和B樹的區別,優缺點等?
3聊聊Spring,主要IOC等等
4多線程JUC包下的一些常見的類,比如CountDownLatch、Semaphore等
5.鎖的概念,鎖相關的關鍵字,volatile,synchronized。還比較了ReentrantLock與synchronized。
6.你瞭解哪些收集器?CMS和G1。詳細談談G1的優點?什麼時候進行Full GC呢?
7.Spring中涉及的一些設計模式
8.算法題:無序數列中求第k大的數(維護最小堆,然後依次遍歷,與堆頂比較)
9.MySQL創建索引的原則,好處
10. 怎麼實現一個線程安全的計數器?
二面(四十多分鐘)
1. 設計模式:講了單例,工廠方法,抽象工廠,策略模式,觀察者模式,代理模式,還順便講了下spring動態代理的實現原理
2. 線程池有哪些參數?分別有什麼用?如果任務數超過的核心線程數,會發生什麼?阻塞隊列大小是多少?
3. HashMap的底層數據結構
4. 紅黑樹的具體結構及實現,紅黑樹與查找樹的區別體現
5. 接著聊ConcurrentHashMap,底層實現
6. HashMap哈希函數的認識,JDK1.8採用的hash函數
7. 數據庫索引,索引底層的實現,B+樹的結構以及與普通查找樹的優點
9. TCP三次握手四次揮手,四次揮手過程中服務端的哪幾種狀態,哪幾種包
10. 已經有一個查詢好友的接口,設計一個微信朋友圈,可以實現發表朋友圈,添加評論,查看評論等功能。主要是設計數據結構
三面(50分鐘:主要分佈式這塊)
- 你對快手的瞭解,和抖音的區別,聊項目
- 項目中用到dubbo?那你說說什麼是rpc框架?和http調用的區別是什麼?
- Redis有哪些數據結構?持久化方案和區別?
- Redis哨兵、集群的設計原理和區別?
- Redis緩存和數據庫會存在一致性問題嗎?怎麼解決
- Kafka怎麼保證數據可靠性?講了生產者端發送消息到broker持久化,分區和副本機制,消費者消費消息的at-least-once和at-most-once?怎麼實現Exactly-Once?
HR面:
- 你個人的最大的缺點是什麼?
- 在工作中和生活中遇見最大的挑戰是什麼?是如何克服的?
- 未來有什麼規劃?
- 平時有哪些興趣愛好
常規的面試流程了,主要就是自己優缺點,以及未來的職業發展,以及薪資這塊。
最後
針對於上面的面試題我總結出了互聯網公司java程序員面試涉及到的絕大部分面試題及答案做成了文檔和架構視頻資料免費分享給大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發等架構技術資料),希望能幫助到您面試前的複習且找到一個好的工作,也節省大家在網上搜索資料的時間來學習。合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
文末分享架構資料,私信【架構】領取免費獲取方式!kafka:
spring原理:
答案獲取方式
獲取方式:資料整理不易,轉發評論後私信回覆【架構】獲取免費領取方式。
閱讀更多 Java技術分享 的文章