2025.5.13 20多分钟(京东零售一面挂了,被物流捞了)
体验很好,不会追问到不会,面试官会顺着我说的接着说。
不过面试中问了很多大模型相关的开放性问题,回答的不太好。
还有DDD领域驱动设计,后悔没看。
————
后续:15号约二面了,把京东的技术文档全看一遍!
自我介绍
- 缓存和数据库一致性如何实现
- 如果删除缓存失败该怎么办
- 项目中消息队列用的什么,如何选型,怎么选Kafka和MQ
Kafka支持大规模的数据流处理,支持分布式架构。吞吐量高10万级
RocketMQ注重消息的低延迟,适合对响应时间要求严格的场景 - 如何保证消息不重复消费
- 密码怎么存数据库的,为什么要加密加盐
- Redis中热Key过期会怎么样,如何解决
不显示设置过期时间
在每个集群中都备份热Key
增加二级缓存,将热Key加到JVM,设置合适的缓存过期时间 - 还有什么方法
- 说说数据库的锁,如何实现的
乐观锁假设冲突少,通过版本号或 CAS 机制检测冲突(如UPDATE SET version=version+1 WHERE version=old_version
)。
悲观锁假设并发冲突频繁,先加锁再操作SELECT FOR UPDATE
。 - 举一个数据库产生死锁的场景(讲的不太好,面试官即使打断,问下个问题)
发布一个帖子时,有两个人同时评论,要更新评论表和帖子表。如果一个事务先获取的评论表,再获取帖子表,而另一个事务先获取帖子表,再获取评论表,就会造成死锁。
两个事务,一个事务先更新A,再更新B;另一个事务先更新B,再更新A,就会造成死锁。 - 什么情况下加锁,只有update和insert吗
当前读也加锁,select xxx for update - 数据库发生死锁怎么看,怎么解决
MySQL 的死锁是由于多个事务持有资源并相互等待引起的。我通过SHOW ENGINE INNODB STATUS
查看死锁信息,定位到是加锁顺序不一致导致的,最后通过调整加锁顺序解决了这个问题。 - 慢查询怎么优化
- 说说explain的一些字段
- 多表连接,怎么看连接的顺序(explain中的table字段可以看)
- 怎么避免回表,索引怎么建立
覆盖索引 - 用过哪些垃圾回收器,怎么进行垃圾回收的
- G1垃圾回收器有什么特点
- JVM有哪些参数可以调整
- 内存溢出或是CPU100%怎么解决
- 项目中用到哪些设计模式
- 除了单例模式,还用了哪些设计模式,DDD了解吗
- 平时项目都用git管理吗
- 用过哪些大模型工具
- 怎么用大模型写代码的
- MCP了解吗
- 在项目开发过程中,是需求,开发,还是测试阶段,用大模型更多一点,随便说说
- 在开发一个模块的时候,大模型始终达不到要求,该怎么办
- 是继续改提示题让大模型生成,还是自己写了
反问(部门业务是仓储系统toB、toC都有,建议是对大模型要熟练使用,了解更多)