2027届实习AI后端开发一面-百度

百度 · AI后端开发 · 一面 · 2026-04

面试题目

  1. 项目拷打
  2. 大模型和AI的使用广度
  3. java线程安全的集合
  4. concurrenthashmap的锁粒度
  5. cas存在的问题
  6. 解决哈希冲突的办法
  7. 最新的jdk版本的功能
  8. 分代垃圾回收器的工作原理
  9. 垃圾回收如何判断对象是可以被回收的
  10. 能作为gc roots的对象是什么
  11. java线程池的参数
  12. 线程池的拒绝策略
  13. redis分布式锁的实现
  14. 如何防止分布式锁死锁
  15. redis可重入锁
  16. redis常用数据结构和场景
  17. 常用设计模式和设计模式的好处

参考解析

  • ConcurrentHashMap锁粒度:JDK 1.7采用分段锁(Segment),JDK 1.8及之后采用CAS+Synchronized,锁粒度精确到数组的头节点,提升并发性能。
  • CAS问题:主要有ABA问题(通过版本号解决)、自旋时间过长消耗CPU资源、只能保证单一共享变量的原子性。
  • GC Roots对象:通常包括虚拟机栈中引用的对象、方法区中类静态属性引用的对象、方法区中常量引用的对象、本地方法栈中JNI引用的对象。
  • Redis分布式锁死锁预防:必须设置过期时间(TTL),防止客户端崩溃导致锁无法释放;使用Lua脚本保证加锁与设置过期时间的原子性。
  • Redis可重入锁:通常基于Hash数据结构实现,Key为锁名,Field为线程标识,Value为重入计数器,获取锁时计数+1,释放时计数-1。