法大大Java实习面经

京东 · Java开发工程师 · 一面 · 山东 · 2026-05

《面试题目》

  1. 26投递
  2. 26约一面
  3. 28一面
  4. 一面(50分钟):无手撕,三个人轮着面,没有手撕的情况下竟然还面这么长时间,我第一次见小厂能面这么长时间的
  5. 自我介绍
  6. 这两段实习和简历上的项目你挑一个你最熟悉的,参与度最高,含金量最高,有技术亮点的讲一讲,怎么解决的
  7. 你刚才说的这个用友实习产出你有遇到过什么难点吗,怎么解决的
  8. Java里的集合是怎么划分的
  9. 具体说一下每个大类集合中你常用的集合,还有他们有什么特点什么区别
  10. HashMap的数据结构
  11. JDK8对HashMap有什么优化吗
  12. 详细讲一下JDK7中HashMap头插法的循环列表问题
  13. HashMap的初始长度和扩容因子是多少
  14. 如果让你创建一个长度为20的HashMap集合,这时候new一个HashMap的长度应该是多长
  15. ArrayLIst线程安全吗
  16. List集合里有没有线程安全的集合
  17. ConcurrentHashMap和HashMap有什么区别
  18. ConcurrentHashMap怎么保证线程安全的
  19. 线程池核心参数有哪些
  20. 如果现在有个线程池核心线程数为5,最大线程数为10,队列为20,随着Springboot服务启动,第一个初始化线程是怎么创建,什么情况会创建非核心线程,什么时候会进入队列,整个流程讲下
  21. synchronized和Reentrantlock区别
  22. synchronized在什么场景下去用
  23. 单例模式了解多少讲一下
  24. 饿汉式和懒汉式哪个是线程安全的
  25. Double Check(双重检查锁)这个方式线程安全吗
  26. 线程有几种状态
  27. 阻塞和就绪有什么区别
  28. 垃圾回收算法有哪些
  29. jdk默认是哪个算法
  30. Java8的新特性有什么
  31. stream流底层是怎么变成流式的
  32. 现在大模型很多都是流式输出,底层和stream流有什么区别吗
  33. =、==、equals有什么区别
  34. 重写和重载有什么区别
  35. 方法名不一样还算重载吗
  36. 实习中你用Redis做了分布式锁,解释一下分布式锁具体怎么实现的
  37. 除了Redis还有其他方式可以实现分布式锁吗
  38. 我看你博客写了缓存穿透和缓存击穿,解释一下
  39. 哪个是数据库没数据
  40. 缓存穿透和缓存击穿的解决方式
  41. 布隆过滤器底层原理
  42. Springboot的自动配置原理
  43. AOP讲一下,具体使用场景
  44. Mabatis和MabatisPlus区别,接口怎么实现的,用到AOP了吗
  45. MySQL索引优化
  46. 索引失效场景
  47. 讲一下前缀索引遇到的最左匹配问题,举个例子
  48. MySQL事务默认隔离级别是什么
  49. 讲一下你的Agent项目
  50. RAG私有数据库怎么做的
  51. 你的文档切片具体怎么做的
  52. 如果说把关键上下文切割了你怎么解决
  53. 查询的时候向量去查,查到之后你是根据什么方式去决定它返回来的命中的那个数值,向量查询什么才叫命中
  54. 部署过Docker容器吗,怎么个部署方式
  55. 如何查看Docker容器的状态,对CPU内存的一个占用情况
  56. 我看你用过很多AI编程工具,你是怎么用的,什么场景下用
  57. 你说的标准规范是什么意思,对于AI编程来说
  58. OpenSpec和Spec-Kit有了解过吗(SDD框架)
  59. 现在页面上有个让你实现任务进度的一个需求,你作为后端开发使用Websorket还是SSE,为什么
  60. 前端需要页面只调用一个接口,你作为后端应该无条件接收所有数据吗,为什么
  61. 你的Agent项目哪些用了开源项目,哪些是自己写的
  62. 讲下你那个状态机模式实现的ReActAgent
  63. 这个Agent是怎么决定去调用哪个工具的
  64. 你那个ReAct循环怎么防止他无限调用的
  65. 兜底策略怎么写的
  66. 你这个Agent分析,如果说每个Agent的策略的结论和角色是不一样的你会怎么处理
  67. 你的条件单自动交易怎么做的
  68. 现在让你分析一支股票,把你现在整个全链路服务说一下(因为我写的是个股票Agent项目)
  69. 有考虑后面会接入飞书这种的定时任务业务吗
  70. 有了解过我们公司吗
  71. 反问:岗位具体业务,用到哪些技术栈
  72. 反问:面试评价
  73. 反问:几轮面试

《参考解析》

  1. MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。

  2. Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。

  3. Spring框架:Spring IoC容器管理Bean生命周期,核心是依赖注入(DI)。AOP面向切面编程通过动态代理(JDK/CGLIB)实现横切关注点(日志/事务/权限)。Spring事务传播行为:REQUIRED(加入现有或新建)、REQUIRES_NEW(挂起当前,新建)、NESTED(嵌套事务)等。

  4. JVM与GC:JVM内存模型:堆(对象分配,GC管理)、方法区(类信息、常量池)、虚拟机栈(栈帧/局部变量/操作数栈)、本地方法栈、程序计数器。GC算法:标记-清除(内存碎片)、标记-整理(无碎片,但移动对象)、复制(新生代)。G1按Region划分堆,预测停顿时间。