面试模拟-基础知识
面试官: 最后问几个基础原理问题,确认一下你的底层知识:
JUC 并发
Q1. ConcurrentHashMap 在 Java 8 中是如何保证线程安全的?
Q2. 它与 synchronized 锁整个 Map 相比优势在哪里?
Q3. putVal 方法大致流程?
JVM 内存
Q1. 老年代发生 Full GC 的触发条件可能有哪些?
A1. 年代空间不足(Promotion Failed)或 Metaspace 溢出。
Q2. 如何从 JVM 参数和代码层面尽量避免频繁 Full GC?
Redis 持久化
Q1. RDB 和 AOF 持久化方式的主要区别是什么?各自的优缺点?
Q2. 如果同时开启,Redis 重启时如何加载数据?
RocketMQ 存储
Q1. RocketMQ 是如何保证消息持久化且能高效读写的?(CommitLog, ConsumeQueue 的设计思想)
MySQL 索引
Q1. 有一个查询 SELECT * FROM orders WHERE user_id = 100 AND status = ‘SHIPPED’ ORDER BY create_time DESC LIMIT 10; 你会在哪些列上建索引?为什么?(考察联合索引、最左前缀、排序、覆盖索引等概念)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ali5669!
评论