字节跳动 AI 后端开发日常实习一面面经
面试题目
- 实习经历深挖
- 大模型底层实现原理
- Java HashMap 原理
- 垃圾回收算法及常见垃圾回收器对应算法
- Spring AOP 介绍及底层实现原理
- JDK 动态代理与 CGLIB 的区别
- 数据库事务隔离级别及解决的问题
- Redis 数据类型及应用场景
- Redis 分布式锁的作用
- 实习与项目相关设计细节
- 手撕代码:返回最长回文子串
参考解析
- HashMap:基于数组+链表/红黑树实现,JDK 1.7 是头插法,1.8 改为尾插法且引入红黑树优化查询性能,负载因子 0.75 为空间与时间的平衡。
- GC 算法:标记-清除、标记-复制、标记-整理。常见的回收器如 CMS 使用标记-清除,G1 使用标记-整理,Parallel GC 多线程并行。
- AOP 底层:主要通过动态代理实现。若目标类实现接口,使用 JDK 动态代理(基于接口);否则使用 CGLIB(基于继承生成子类)。
- Redis 分布式锁:通过
SETNX或 Lua 脚本实现原子性加锁,解决多节点并发下的资源互斥问题,需注意锁过期时间(TTL)及看门狗机制。 - 最长回文子串:建议使用中心扩散法(复杂度 O(n²))或 Manacher 算法(复杂度 O(n)),面试中中心扩散法书写简洁且性能满足需求。