南宁小厂面试 - Java 后端开发实习

某互联网公司 · Java开发工程师 · 广西 · 2026-06

《面试题目》

一开始先写了份试卷,选择题和判断题(Java 基础),还有八股题、两道手撕(手写代码)、SQL 题。面试问了很多问题,感觉是问得很广,但是不深,都能稳稳答上来,当练级用了。以下是面经:

  1. 一、项目
  2. 介绍一下你的智能体 / RAG 项目。
  3. 1 这个项目解决什么问题?
  4. 2 文档是如何分块、向量化并检索的?
  5. 3 准确率有没有评估?TopK 命中率大概多少?
  6. 4 在线文档更新机制是怎么实现的?
  7. 5 文档变化后,如何保证向量库内容是最新的?
  8. 介绍一下 web 后端项目。
  9. 1 Redis 分布式锁的实现原理是什么?
  10. 2 Redisson 底层是怎么实现分布式锁的?
  11. 3 Watchdog 机制有什么作用?
  12. 4 Lua 脚本在释放锁时解决什么问题?
  13. 你有没有做过数据同步方案?
  14. 1 如果要把 MySQL 的增量数据同步到非结构化数据库,你会怎么做?
  15. 2 定时任务扫描增量数据有什么问题?
  16. 3 如何用 MQ 实现增量同步?
  17. 4 如何通过监听 binlog 实现数据同步?
  18. 有没有接触过物联网设备对接?
  19. 1 有没有了解过 MQTT 协议?
  20. 2 后端在物联网项目中主要负责什么?
  21. 3 是否做过大屏、报表、数据统计相关项目?
  22. 是否接触过低代码平台?
  23. 1 有没有使用过若依?
  24. 2 若依的优点是什么?
  25. 3 若依的缺点是什么?
  26. 4 有没有了解过若依 Vue / 若依 Cloud?
  27. 二、八股
  28. 做一个自我介绍。
  29. 1 你是专升本还是全日制本科?
  30. 2 可以实习多久?
  31. 3 Java 是从什么时候开始学的?
  32. 4 成绩大概怎么样?
  33. 面向对象有哪些特性?
  34. 1 什么是封装?
  35. 2 什么是继承?
  36. 3 什么是多态?
  37. Java 基础数据类型有哪些?
  38. 如何截取字符串中的一部分内容?
  39. 并发编程有哪些使用场景?
  40. 缓存击穿是什么?
  41. 1 缓存击穿产生的原因是什么?
  42. 2 如何避免缓存击穿?
  43. 3 热点 Key 过期后如何处理?
  44. 4 逻辑过期方案怎么实现?
  45. 操作系统熟悉哪些内容?
  46. 1 进程和线程有什么区别?
  47. HTTP 和 HTTPS 有什么区别?
  48. 1 HTTPS 为什么更安全?
  49. 2 HTTPS 建立连接时涉及什么过程?
  50. 3 数字证书有没有使用过?
  51. 4 证书一般通过什么渠道申请?
  52. MySQL 事务的特性有哪些?
  53. 1 原子性是什么?
  54. 2 一致性是什么?
  55. 3 隔离性是什么?
  56. 4 持久性是什么?
  57. 如果要把某张表的数据回退到前一天 12 点,有什么办法?
  58. 1 使用 binlog 回退数据的前提是什么?
  59. 2 binlog 需要配置成什么格式?
  60. MySQL 索引类型有哪些?
  61. SQL 优化有哪些经验?
  62. 1 Explain 主要看哪些字段?
  63. 2 索引失效有哪些常见情况?
  64. 3 联合索引最左前缀原则是什么?
  65. 4 函数操作、计算、隐式转换为什么可能导致索引失效?
  66. Spring Cloud 有没有使用过?
  67. AOP 和 IOC 分别是什么?
  68. 1 AOP 的实现原理是什么?
  69. 2 AOP 适合哪些场景?
  70. 3 IOC 解决了什么问题?
  71. Spring 注解和 Spring Boot 注解分别有哪些?
  72. 1 Spring 常用注解有哪些?
  73. 2 Spring Boot 常用注解有哪些?
  74. 3 @Autowired 和 @Resource 有什么区别?
  75. 控制层常用注解有哪些?
  76. 1 @Controller 和 @RestController 有什么区别?
  77. 2 @RequestMapping、@GetMapping、@PostMapping 分别怎么用?
  78. HTTP 请求类型有哪些?
  79. 1 GET 和 POST 有什么区别?
  80. 2 PUT 和 DELETE 分别表示什么?
  81. Function Call 是什么?
  82. 1 Function Call 在智能体中怎么实现工具调用?
  83. 2 大模型返回 JSON 后,后端如何解析并调用工具?
  84. Git 常用命令有哪些?
  85. 1 如何把本地代码提交到远程指定分支?
  86. 2 企业开发中代码提交和合并流程是什么?
  87. Linux / Ubuntu 有没有使用过?
  88. Docker 镜像和容器有什么区别?
  89. 1 Docker Compose 有没有用过?
  90. 2 docker-compose.yml 文件一般包含哪些内容?
  91. 3 Docker 挂载是什么?
  92. 4 为什么要做数据卷挂载?
  93. 定时任务框架有没有用过?
  94. 平时看哪些技术网站或论坛?
  95. 三、算法
  96. 数组中第 k 大的数
  97. 判断字符串中的英文字母是否回文
  98. 四、反问环节

《参考解析》

  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(嵌套事务)等。