建信融通-后端开发一面面经

腾讯 · Java开发工程师 · 一面 · 北京 · 2026-06

《面试题目》

  1. base北京,由中国建设银行联合国铁集团、国家电网、中船集团、三峡集团、五矿集团等央企共同发起设立的供应链金融科技公司,依托核心企业信用搭建互联网供应链金融信息服务平台(核心产品”e信通”),为产业链上下游中小微企业提供应收账款融资、电子债权流转与信用支付等在线金融服务。
  2. 【timeline】
  3. 网申时间:2026/4/15~2026/5/15
  4. 投递时间:2026/5/8
  5. 电话约面:2026/5/26 确认是否面试,询问AI工具使用情况
  6. 一面通知:2026/5/27 详细面试时间,面试平台
  7. 腾讯会议-32min
  8. 13:45被运营助理call,叫进会议室开摄像头等候,面试14:00开始。
  9. 自我介绍,介绍自己做过的项目,以及项目中主要做些哪些模块
  10. 具体讲讲你刚刚提到的订单模块,完整业务流程是怎么样,你主要开发的是什么功能?
  11. 处理“订单超时自动取消”这个场景,延迟消息是什么时候发送的?在订单的哪个生命周期创建的?
  12. 消息的TTL设置的多长时间?
  13. 死信队列的消费者如何避免重复消费(如何保证消息幂等性),比如在死信队列处理消息前,被用户支付了,这种情况你有考虑吗?二次确认机制是怎么样的流程?
  14. 项目中同时用到了RabbitMQ和Redis,为什么不考虑用Redis的Stream或者Redisson的延迟队列去实现,而是选择RabbitMQ,这个技术选型你是怎么考虑的?
  15. 你刚刚提到,早期采用数据库轮询的方式实现超时取消,后来改为RabbitMQ,你觉得这两种方案在系统资源成本、实现复杂度以及性能表现上的优缺点?
  16. 项目中提到用redisson分布式锁去解决高并发抢单,并利用ZSet去缓存待接订单,你能详细讲一下从用户下单到抢单整个的业务流程是怎么样的?
  17. Redisson分布式锁,锁的持有时间是如何设计的?依据是什么?
  18. 如果某用户成功获取锁后,后续的业务处理耗时较长,或因数据库、网络 IO 等原因出现阻塞,锁是否会一直占用导致其他请求无法执行?还是会自动释放?锁释放的过程你理解吗?(看门狗机制)
  19. 项目中提到待接订单是放在ZSet中,那抢单的时候是先从ZSet中取出订单再抢锁还是先抢锁再取出ZSet?
  20. Redis是怎么部署的?是单机部署、主从复制,还是集群模式?
  21. Spring框架中,事务有几种方式?
  22. Java开发过程中,如何去开启一个事务?
  23. Java注解的实现原理是什么?
  24. 比如一个类有两个方法,方法A加上了事务注解,方法B没有加事务注解,但是调用了方法A,此时有一个Controller去调用方法B,它会触发事务吗?(Spring 事务的传播与自调用陷阱)
  25. 你在学习或开发项目过程中,有用到AI工具进行辅助开发吗?讲一讲是怎么使用的,它们带来了哪些效率提升?

反问环节 18. 实习生应聘有几轮面试?两轮面试的区别是? 19. 公司研发部门的规模? 20. 企业办公的软件采用的是哪一款? 21. 公司对AI的态度是什么? 22. 公司的垂直业务大概是什么样的?


《参考解析》

  1. 计算机网络:TCP(传输控制协议)是面向连接、可靠的传输协议,提供流量控制和拥塞控制;UDP(用户数据报协议)是无连接、不可靠但速度更快的协议。TCP通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手断开(FIN→ACK→FIN→ACK)。

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

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

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