北大软件(郑州)JAVA实习面经

北大软件 · JAVA开发实习 · 郑州 · 2026-03

《面试题目》

一、项目与个人能力

  1. 自我介绍
  2. 介绍项目背景与选型理由
  3. 项目功能实现流程及性能优化方案
  4. 技术栈选择逻辑及新技术学习路径
  5. 处理前后端联调、参数校验与异常处理的机制
  6. 在项目中如何决定功能在前端还是后端实现
  7. 分享通过自学掌握技术的案例
  8. 关于使用AI工具辅助开发的看法与思考

二、技术排查与解决 9. 生产环境出现接口404,但本地/测试正常,如何定位? 10. 排查“文件删除失败”及“接口响应慢”的具体思路 11. 项目中遇到爬虫反爬等技术难题时的解决思路

三、数据库与SQL 12. 考察复杂查询、列转行、递归查询的应用 13. DELETE与DROP的本质区别 14. 项目中最复杂的SQL及动态SQL实现(SQL拼接) 15. MyBatis <where> 标签优化动态SQL的原理

四、计算机基础与网络 16. TCP与UDP的核心区别 17. HTTPS握手过程 18. 常见HTTP状态码含义 19. 常用Linux命令 20. 对HTML、DOM、JavaScript的掌握程度 21. 权限控制的实现及其前后端协作方式


《参考解析》

  1. 接口404排查:检查Nginx转发配置、网关路由是否同步、生产环境路径映射、是否漏传配置文件或环境差异导致的上下文缺失。
  2. 接口响应慢排查:通过Arthas/JVisualVM分析CPU/内存占用,查看慢SQL日志,检查是否存在死锁、不必要的远程调用或未命中索引,利用链路追踪(如SkyWalking)定位耗时环节。
  3. DELETE vs DROP:DELETE属于DML,逐行删除且可回滚,触发触发器;DROP属于DDL,直接删除表结构及数据,不可回滚且执行速度极快。
  4. HTTPS握手:客户端发送支持的加密套件与随机数;服务端返回证书与公钥;客户端验证证书,生成对称加密秘钥(Pre-master)通过公钥加密传给服务端;双方利用对称密钥进行后续通信。
  5. 权限控制:建议采用RBAC模型(用户-角色-权限)。后端在Controller层通过拦截器/AOP校验Token及用户权限,前端利用路由守卫(Router Guard)根据后端下发的权限码动态渲染菜单或按钮。