影石 一面&二面凉经
- 时间
- 2026-07
- 来源
- 牛客网
《面试题目》
- 一面 65min
- 讲讲java
- hashmap是个啥
- 线程池的参数
- 线程池的拒绝策略
- 如何创建多个线程
- future和callable有啥区别
- 如何阻挡多个线程完成任务了一起结束
- 反射是个啥
- 单例模式怎么创建
- 除了你说的两个,双重检查锁和静态内部类,还有什么方法
- 反射能不能反射创建出,你说的双重检查锁和jvm的静态内部类的那个单例
- 如果可以的话,那又如何保证你的单例呢
- 如何线上排查进程oom
- 堆里面打满了会有oom吗
- 你说堆可以设置大小,堆会超过这个大小吗
- 讲讲g1和zgc区别
- g1和zgc分别用在什么场景
《参考解析》
- Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
- MySQL索引通常使用B+树,叶子节点按顺序连接,适合范围查询;设计索引时结合选择性、最左匹配原则和执行计划,避免无效索引与回表开销。
- 并发问题应先明确共享状态和一致性边界,再选择锁、CAS或队列。线程池需要根据任务是CPU密集还是IO密集设置核心线程数、队列容量和拒绝策略,并监控活跃数与队列长度。