1. 常见的垃圾回收器有哪些?2. CMS 和 G1 垃圾回收器的回收流程有什么区别?3. CMS 垃圾回收器针对的范围是哪些?4. CMS 和 G1 在针对老年代引用新生代时的具体实现原理是什么?5. AQS(AbstractQueuedSynchronizer)有哪几种实现?除了读写锁,还有哪些其他实现?6. DelayQueue 是如何实现延迟的?7. ConcurrentHashMap 在 JDK 7 中使用分段锁(Segment)的优势是什么?为什么后来改用 synchronized?8. 为什么 HashMap 使用 synchronized 而不是 ReentrantLock?9. MySQL 的索引从数据结构、功能和物理存储三个方面分别有哪些类型?10. MySQL 的 RR(可重复读)隔离级别是否可以完全防止幻读?如果不能,哪些情况下会出现幻读?11. MySQL 的 undo log 如何防止幻读?12. 不同的 MySQL 存储引擎(如 InnoDB 和 MyISAM)有哪些区别?14. 串行化隔离级别是如何防止幻读的?其实现原理是什么?15. redo log 的底层刷盘机制是什么?16. Redis 的底层数据结构有哪些?例如 string 的编码方式有哪些?17. ZGC 的最大特点是什么?染色指针的概念是什么?18. JDK 8 之后的新特性有哪些?19. GC 调优的主要策略是什么?吞吐量优先和响应时间优先的区别是什么?20. 垃圾回收算法有哪些?例如标记清除、标记整理、标记复制。21. Redis 的多线程是从哪个版本引入的?具体用在哪些方面?22. Redis 的五种 IO 模型是什么?23. Caffeine 缓存的缺点是什么?25. 分库分表的解决方案中,基因法的具体实现原理是什么?26. 如果出现表倾斜,应该如何解决?27. 解决购票高并发问题时使用的分段锁具体用在哪里?28. 双重检测锁(Double-Checked Locking)的实现原理是什么?29. 在 Redis 中,什么情况下使用 string,什么情况下使用 hash?30. 如何通过 Redis 缓存购物车商品?具体的数据结构选择和实现方式是什么?31. 如果数据量少的话 HyperLogLog 的缺点是什么?32. 如何保证接口的幂等性?有哪些常见的实现方案?33. 使用 token 如何实现接口幂等性?其优缺点是什么?34. 时间戳能否用于实现幂等性?如果可以,如何实现?35. 什么是逃逸分析?它的优化措施有哪些?36. 标量替换是如何进行优化的?其实现原理是什么?37. Lua 脚本在 Redis 中如何保证原子性?38. 布隆过滤器的参数有哪些?如何设置这些参数?39. 布隆过滤器的主要缺陷是什么?如何解决误判率随时间增加的问题?40. 布隆过滤器内部如何使用多个哈希函数?其查询流程是怎样的?41. 如何降低哈希冲突?布隆过滤器的设计思想是否可以应用于其他场景?42. 三色标记法在垃圾回收中的作用是什么?可能出现的问题(如悬空指针、对象消失)及其解决方案是什么?