Java后端面试记录2
《面试题目》
- 感觉现在都不怎么拷打八股,全是场景题。
- 简历上面写的是javaguide的智能面试系统项目,面试基本没人问项目。最多问问使用到的jwt(项目里面写到的)。
- 字节第一次面试挂了,后被捞起来进行第二次面试,依然挂了。主要拷打的是springboot的一些八卦,可惜好久没看了,忘光了。所以挂。
- 华勤的三面速通:一面拷打了几个技术题,stream流,SQL慢查询以及场景一些普通八股;二面主要是聊天,聊一聊Agent;三面HR面。想问佬知道华勤的供应链系统的java开发值得去吗?(未来去央国企,这个实习是否值得去)
- sharpa robtics一面:拷打场景题主要是关于最终一致性的,订单服务和库存服务怎么保持最终一致性。我回答出来分布式事物(细节答不出来,完全没了解过这个,只知道概念),消息队列,对账等。最后一个智力题还没答出来,感觉要挂。
- 小红书:昨天上午和HR沟通了一下,当天晚上十一点直接给我打电话,问了一个场景题和八卦,答出来了。然后直接说订HR面,然则今天还没收到HR面的通知。不知道是不是在逗我。
- 总结下来,java还是有很多要学的,很多不会的,很多面试挂了是因为我能力不行,不是科班,只学了几个月。
《参考解析》
-
MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。
-
Spring框架:Spring IoC容器管理Bean生命周期,核心是依赖注入(DI)。AOP面向切面编程通过动态代理(JDK/CGLIB)实现横切关注点(日志/事务/权限)。Spring事务传播行为:REQUIRED(加入现有或新建)、REQUIRES_NEW(挂起当前,新建)、NESTED(嵌套事务)等。
-
消息队列:消息队列解决异步解耦、流量削峰。消息可靠性:生产者confirm确认;Broker持久化;消费者手动ACK。幂等性:消费端通过唯一ID+Redis或DB乐观锁实现。顺序消息:同一业务Key路由到同一分区/Queue,单线程消费。消息积压:扩消费者+增加分区+临时跳过非关键消息。
-
RAG与大模型:RAG(检索增强生成)流程:文档切片→向量化(Embedding)→存向量数据库→检索时将query向量化→TopK语义检索→将相关文档拼入prompt→LLM生成。优化:混合检索(语义+关键词)、重排序Rerank、查询改写、上下文压缩。评估:召回率(relevant docs retrieved/total relevant)、精确率、Answer相关性。