超星集团

Java开发一面面经

完整信息

16 条问法 · 16 道题

本篇目录

一、基础与中间件

Q1:线程池的参数一般怎么设置?依据是什么?

A:主要看任务是 IO 密集型还是 CPU 密集型。IO 密集型可设核心线程数为 2N(N 为 CPU 核数),CPU 密集型设为 N+1;最大线程数和队列长度根据业务负载调整,拒绝策略按场景选择(如丢弃或由提交线程执行)。

✅ 思路正确,但未明确“N 是 CPU 核数”,且拒绝策略表述可更规范。

Q2:G1 垃圾回收器的设计原理是什么?

A:先初始标记 root 对象,再并发标记,然后重新标记修正,最后回收被标记对象。优化可调大堆内存减少 GC 频率。

⚠️ 流程大致对,但未提 G1 核心机制(Region 分区、Remembered Set、Mixed GC),术语不够准确。

Q3:MySQL 可重复读(RR)下如何避免幻读?

A:InnoDB 通过 MVCC 和加锁机制防止幻读。

✅ 方向正确,但未说明具体是 Next-Key Lock(记录锁 + 间隙锁) 实现。

Q4:SQL 走了索引还是很慢,怎么优化?

A:先看执行计划是否真走索引(避免隐式转换、最左匹配失效);若数据量大,考虑分库分表;还可加缓存,用消息队列更新缓存。

✅ 思路完整,覆盖排查 → 架构 → 缓存三层优化。

Q5:如何保证缓存(Redis)和数据库的一致性?

A:更新数据库后删除缓存;读时若缓存为空,再查 DB 并回填。实习中也用过“写 DB 后更新缓存”。

⚠️ 未明确推荐方案是 “先更新 DB,再删缓存”(Cache-Aside 模式),后者易引发脏读。

Q6:Redis 缓存雪崩怎么解决?

A:给缓存设置随机过期时间;热点 key 更新时加锁,只让一个线程重建缓存,其他等待。

✅ 回答清晰,覆盖主流方案(过期打散 + 互斥重建)。

Q7:Kafka 如何保证消息不丢失、不重复消费?

A:不丢:靠副本机制和磁盘持久化(默认保留 7 天);不重:业务层做幂等,比如用达人 ID 去重。

✅ 工程实践优秀,结合 Kafka 特性与业务兜底。

Q8:Spring AOP 如何实现方法耗时统计?

A:自定义注解,在切面中记录方法执行前后时间,计算差值。

✅ 完全正确,简洁实用。

二、项目与实习

Q9:请讲一段你实习中做得比较关键的项目。

Q10:项目中有用到事务吗?如何保证一致性?

三、AI 与开放设计

Q11:MCP 是什么?

A:MCP 是一种协议,统一封装 AI 调用外部工具的能力(如查天气),类似 USB 接口,便于插拔扩展。

✅ 理解准确,类比形象。

Q12:如果让你用 AI 优化教务系统,你会怎么做?

A:针对教师排课,AI 可自动分析课程依赖关系,生成多套排课方案并给出推荐理由,减轻老师负担。

✅ 抓住核心痛点(排课复杂),有业务思考;可补充更多场景(如智能选课、毕业审核自动化)。

四、行为与规划

Q13:你未来的职业规划是什么?

A:坚定走后端方向,前期深耕业务与技术栈,后期考虑往技术深度或管理发展。

✅ 方向清晰;⚠️ 可更具体(如“希望深入分布式系统或云原生架构”)。

Q14:你有什么想问我们的?

A:询问部门具体负责哪个产品(学习通/学工/教务/校园信息化),以及校招流程。

✅ 体现主动性和岗位关注。

#面试问题记录##春招##牛客AI配图神器#

本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
    反问
    询问部门具体负责哪个产品(学习通/学工/教务/校园信息化),以及校招流程。
  16. 16
    反问
    询问部门具体负责哪个产品(学习通/学工/教务/校园信息化),以及校招流程。

同作者面经

相关公司