3.13 JDY 京东健康后端开发实习一面面经
换个部门面试正常多了,上次那个面试官我能记一辈子😠
整体就是少量八股加项目拷打,但是面试官对我第一个项目还是一点不感兴趣,除了答八股的时候扯了点后面没怎么问,基本问的都是我拿来凑数的rag,,,
10点半结束后12点约二面
我的回答是ai自动总结的,懒得回忆了
00:18 自我介绍
02:24 项目介绍
03:40 Java基础:int取值范围
本章节回答了一个关于Java基础的问题。面试者准确回答了int类型(32位,含符号位)的取值范围是-2^31到2^31-1。
04:24 看你的简历上写了threadlocal,讲讲怎么用的?
本章节讨论了ThreadLocal的应用。面试者在短链项目中用它存储用户信息以减少传参,并特别说明使用了阿里的TransmittableThreadLocal来适配线程池环境,避免数据错乱和上下文丢失。
05:12 讲讲异步线程池怎么用的?
本章节描述了项目中的异步优化实践。在短链创建时,获取原网址图标的操作比较耗时,因此面试者使用自定义的异步线程池将其改为异步处理,以提升性能。
05:58 分页查询怎么实现的?
本章节简要回答了MyBatis分页查询的实现方式。面试者提到使用了MyBatis的分页插件。
06:36 讲讲最左匹配原则,如何判断一条语句走没走索引?
本章节深入讲解了MySQL联合索引。面试者解释了最左匹配原则,即查询条件必须包含联合索引最左边的列才能生效,并提到可以使用EXPLAIN语句分析索引使用情况。
07:36 Redis中除了基础的string类型,各种集合类有没有用过?
本章节详细介绍了Redis在项目中的具体应用。在短链跳转的数据统计环节,为减轻数据库压力,会先用Redis做批量预处理:使用HyperLogLog统计UV,使用Set对IP或PV进行去重,再通过RocketMQ异步写入数据库。
08:35 Set用的是普通set还是zset?
本章节简短确认了Redis Set的类型。面试者回答项目中使用的Set是不涉及排序的普通Set。
08:54 那如果说一个set存的内容过多怎么办?
本章节探讨了Redis大Key问题的解决方案。面试者提出可以通过数据分片(将一个大Set拆分为多个小Set并编号)来处理,若数据量极大则需更换数据结构。为保障数据均匀性,可考虑使用哈希算法进行分配。
10:51 讲讲spring除了IOC和DI之外还了解什么?
本章节重点介绍了Spring AOP的应用。除了依赖注入,面试者认为AOP是Spring的核心特性。他在智能面试助手项目中,结合自定义注解、Redis和Lua脚本,基于令牌桶算法实现了接口限流功能。
12:00 限流具体怎么做的呢,多用户怎么分别控制限流?
本章节补充说明了AOP限流的具体实现和当前局限。通过自定义注解可以方便地标记需要限流的接口。但面试者也承认项目目前是单用户模式,尚未考虑多用户场景下的额度控制。
13:05 讲讲其他spring注解还用过哪些?
本章节讨论了Spring的其他常用注解及事务优化。面试者提到了Spring MVC注解(如@RestController),并分享了对短链项目事务的改进:将原本包裹数据库操作、写缓存和布隆过滤器的声明式事务注解,改为编程式事务,仅将数据库入库操作纳入事务管理。
14:09 为什么一定要是用编程性事务,我把入库操作提出来作为一个新方法不行吗?
这里掉进面试官的坑里了,当时没反应过来,说了应该也行。但实际上会涉及到事务注解调用失效的问题。
15:04 RocketMQ在项目中是怎么应用的?
本章节介绍了RocketMQ的应用。在短链项目中,RocketMQ用于异步数据统计和实现延迟双删以保证缓存一致性。
16:04 RAG系统准确率与召回率怎么优化的?
对于RAG系统,面试者计划从两方面提升准确率:一是在文档分片时绑定关键词和用户信息作为元数据;二是对用户简短提问进行扩写后再做向量检索。
17:57 为什么使用Spring AI 而不是 LangChain4J
本章节解释了项目技术选型的考量。面试者对比了Java领域的两个AI框架:LangChain4J功能全面但复杂,Spring AI则调用更简单,因此选择了后者进行开发。
18:49 流式输出使用的webflux相关的方法知道吗?
不太了解,通过ai写的。
19:06 还有其他亮点么?
本章节阐述了项目的具体实现细节。文档解析耗时,因此没有引入重量级消息队列,而是基于Redis Stream实现异步处理。此外,在解析前会用SHA哈希算法对文件去重,以节约模型Token并处理冗余请求。展望了RAG系统的进一步优化方案。面试者计划:1. 使用HyDE算法,先让大模型生成初步答案再转为向量进行检索;2. 利用PGVector的混合索引(稠密+稀疏)提升召回率;3. 引入ReRanker对召回结果重排序,以平衡召回率与精确度。
能实习多久?
项目都是自己做的吗,有跟老师做过项目吗?
反问
#27届求职交流##发面经攒人品##春招 / 实习投递,你最焦虑的一件事#