作者介绍
浙江大学软件工程硕士生
淘天后端研发工程师
秋招斩获阿里、字节、快手、京东、美团等多个大厂研发ssp/sp
持续分享秋招经验分享、高频八股问题、最新大厂面经、硬核技术干货……
全网同号,欢迎关注
技术难题
在高并发场景下,系统接口响应时间变长,数据库查询效率低下。
分析与解决过程
CompletableFuture
对耗时操作进行异步化处理,提升系统吞吐量。固定线程池的理解
固定线程池通过 Executors.newFixedThreadPool(int nThreads)
创建,核心线程数和最大线程数相同,且线程数量固定。
使用场景
适用于任务量稳定、执行时间较短的任务,例如批量数据处理或定时任务调度。
优点
缺点
限制
动态扩展不足:线程池大小固定,无法动态扩展,可能不适合任务量波动较大的场景。
常见拒绝策略
实现逻辑
decr
)进行库存扣减。优化点
支持的数据结构
RDB 和 AOF 的区别
过期键删除策略
内存淘汰策略
分布式锁实现原理
Redisson 使用 Redis 的 SETNX
命令实现分布式锁,确保同一时间只有一个客户端能够获取锁。
看门狗机制
工作原理
每个线程都有一个独立的 ThreadLocalMap
,用于存储线程本地变量。ThreadLocal
通过 set
和 get
方法操作线程的 ThreadLocalMap
,确保变量在线程间隔离。
避免内存泄漏
ThreadLocal
后,调用 remove
方法清除变量。ThreadLocal
中,减少内存占用。线程池注意事项
remove
方法清理 ThreadLocal
。ThreadLocal
变量可能会残留到下一个任务中,导致数据污染。线程安全性
HashMap
是非线程安全的,在多线程环境下可能出现死循环或数据丢失。
get 方法流程
底层数据结构
JDK 1.8 中,HashMap
底层采用数组 + 链表/红黑树的结构。
高并发问题
线程安全替代方案
synchronized
实现线程安全,性能较差。HashMap
进行包装,性能较低。区别
ConcurrentHashMap
性能最优,适合高并发场景。Hashtable
和 synchronizedMap
锁粒度较大,性能较差。支持的存储引擎
InnoDB 索引结构
选择 B+ 树的原因
合理创建索引的原则
联合索引作用
联合索引可以加速多条件查询,减少单字段索引的数量。
性能优化经验
堆和栈的区别
对象生命周期
new
关键字分配内存。垃圾回收机制
未被回收的对象
如果对象仍有引用或处于 GC Roots 可达路径中,JVM 不会回收。
作用
volatile
变量,其他线程可以立即感知。底层实现原理
关注【码间烟火录】,解锁秋招通关秘籍!
这里有你想要的一切:
✅ 超全秋招经验分享
✅ 高频八股问题解析
✅ 最新大厂面经合集
✅ 海量技术干货