互联网公司Java面试总结
GitHub鏈接:
面試問題總結?github.com
?
?
LeetCode高頻題及題目分類?github.com
ZooKeeper
1. CAP定理
2. ZAB協議
3. Leader選舉算法和流程
Redis
1. Redis的應用場景
2. Redis支持的數據類型(必考)
3. zset跳表的數據結構(必考)
4. Redis的數據過期策略(必考)
5. Redis的LRU過期策略的具體實現
6. 如何解決Redis緩存雪崩,緩存穿透問題
7. Redis的持久化機制(必考)
8. Redis的管道pipeline
Mysql
1. 事務的基本要素
2. 事務隔離級別(必考)
3. 如何解決事務的并發問題(臟讀,幻讀)(必考)
4. MVCC多版本并發控制(必考)
5. binlog,redolog,undolog都是什么,起什么作用
6. InnoDB的行鎖/表鎖
7. myisam和innodb的區別,什么時候選擇myisam
8. 為什么選擇B+樹作為索引結構(必考)
9. 索引B+樹的葉子節點都可以存哪些東西(必考)
10. 查詢在什么時候不走(預期中的)索引(必考)
11. sql如何優化
12. explain是如何解析sql的
13. order by原理
JVM
1. 運行時數據區域(內存模型)(必考)
2. 垃圾回收機制(必考)
3. 垃圾回收算法(必考)
4. Minor GC和Full GC觸發條件
5. GC中Stop the world(STW)
6. 各垃圾回收器的特點及區別
7. 雙親委派模型
8. JDBC和雙親委派模型關系
9. JVM鎖優化和鎖膨脹過程
Java基礎
1. HashMap和ConcurrentHashMap區別(必考)
2. ConcurrentHashMap的數據結構(必考)
3. 高并發HashMap的環是如何產生的
4. volatile作用(必考)
5. Atomic類如何保證原子性(CAS操作)(必考)
6. synchronized和Lock的區別(必考)
7. 為什么要使用線程池(必考)
8. 核心線程池ThreadPoolExecutor的參數(必考)
9. ThreadPoolExecutor的工作流程(必考)
10. 如何控制線程池線程的優先級
11. 線程之間如何通信
12. Boolean占幾個字節
13. jdk1.8/jdk1.7都分別新增了哪些特性
14. Exception和Error
Spring
1. Spring的IOC/AOP的實現(必考)
2. 動態代理的實現方式(必考)
3. Spring如何解決循環依賴(三級緩存)(必考)
4. Spring的后置處理器
5. Spring的@Transactional如何實現的(必考)
6. Spring的事務傳播級別
7. BeanFactory和ApplicationContext的聯系和區別
其他
1. 高并發系統的限流如何實現
2. 高并發秒殺系統的設計
3. 負載均衡如何設計
補充
另外還會考一些計算機網絡,操作系統啊之類的。像消息隊列,RPC框架這種考的比較少。計算機網絡就是分層啊,tcp/udp啊,三次握手之類的。操作系統就是進程與線程啊,進程的數據結構以及如何通信之類的。數據結構的排序算法也比較常考,考的話一定會讓你手寫個快排。剩下的算法題就靠LeetCode的積累了。其實非算法崗考的算法題都蠻簡單的,很多題完全就是考察你智力是否正常,稍微難點的涉及到一些算法思想的按照LeetCode題目類型的分類,每種題做一兩道基本就能完全應付面試了。
總結
以上是生活随笔為你收集整理的互联网公司Java面试总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kaggle实战:点击率预估
- 下一篇: 胆囊炎能不能吃豆腐