招银网络科技 Java后端一面
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- JVM 的堆和栈分别有什么作用?
- GC 的过程是什么?Full GC 会回收老年代所有内存吗?
- HashMap 为什么线程不安全?ConcurrentHashMap 为什么线程安全?
- CAS 的原理是什么?volatile 能保证
count++的原子性吗? - synchronized 和 ReentrantLock 有什么区别?
- InnoDB 使用什么索引结构?B+树有什么优点?
- MySQL 事务隔离级别如何解决幻读?
- 联合索引
(A,B)能否支持只查询C、A、B的条件? - Redis 缓存击穿是什么?如何解决?
- HTTP 与 HTTPS 有什么区别?TLS 握手如何进行?
- Kafka 如何保证消费有序?
- 如何反转链表的指定区间?
《参考解析》
虚拟机栈按线程保存栈帧,堆保存大多数对象;Full GC 会回收整个堆及元空间相关结构,但具体范围取决于收集器。CAS 只保证单次比较交换,count++ 需要额外原子类或锁。联合索引遵循最左匹配,只有从 A 开始的连续条件才能充分利用。缓存击穿可用互斥锁或逻辑过期重建;Kafka 要保证分区内有序,并让同一业务键路由到同一分区。