25年11月广州华资软件 + Java开发 + 线上 + 一面 + 实习

#JAVA##JAVA面经##JAVA内推#

1. 学校是否允许实习?可以实习几个月?

思路

  • 直接明确回答核心问题:是否允许、可实习时长。
  • 补充加分信息:实习期间的时间投入(如全职)、能否配合公司考勤,体现稳定性。

回答示例

学校明确允许校外实习,我这边可以全职实习,预计能持续实习6个月以上,期间可以配合公司的考勤和工作安排,保证实习的稳定性。

2. 介绍你的项目

思路

  • 适配实习场景:简化技术复杂度,突出个人动手实践、独立完成的模块,弱化团队协作(重点说自己做的)。
  • 逻辑:项目背景→技术栈→自己负责的功能→遇到的问题+解决方式→实习相关的能力匹配(如编码、调试、数据库使用)。

回答示例

我做过一个基于SpringBoot+MySQL的学生成绩管理系统,主要用于学校院系的成绩录入和查询。我负责后端接口开发,包括成绩的增删改查、数据统计接口,还做了简单的SQL优化,比如给查询字段加索引提升速度。开发中遇到过查询慢的问题,通过分析SQL执行计划,优化了关联查询逻辑,最终把接口响应时间从500ms降到了100ms以内。这个项目让我熟练掌握了Java后端开发和MySQL的基础使用,和实习岗位的技术要求也比较匹配。

3. MySQL中的外连接和内连接

思路

  • 内连接(INNER JOIN):只返回两表匹配的记录,核心是“交集”。
  • 外连接:左外连接(LEFT JOIN)返回左表所有+右表匹配的;右外连接(RIGHT JOIN)返回右表所有+左表匹配的;核心是“包含单侧全部”。
  • 举例说明,更易理解。

回答示例

内连接(INNER JOIN)只会返回两个表中满足连接条件的记录,相当于取两表的交集,比如查询学生表和成绩表中“有成绩的学生”,就用内连接。外连接分左外和右外:左外连接(LEFT JOIN)会返回左表的所有记录,即使右表没有匹配的也会显示,右表字段补NULL;右外连接(RIGHT JOIN)则相反,返回右表所有记录。比如查“所有学生的成绩(包括没成绩的学生)”,就用左外连接(学生表左连成绩表)。

4. SQL注入

思路

  • 定义:恶意拼接SQL语句,篡改原有逻辑(如登录绕过、数据窃取)。
  • 危害:数据泄露、删改数据、服务器权限被获取。
  • 防护措施:预编译语句(PreparedStatement)、参数化查询、输入校验、最小权限原则。

回答示例

SQL注入是攻击者通过在输入框等位置输入恶意SQL片段,拼接进原有SQL语句中,篡改执行逻辑的攻击方式,比如登录时输入' OR 1=1 -- 绕过验证。防护的核心是避免SQL语句直接拼接参数,项目中我会用PreparedStatement预编译语句,它会把SQL结构和参数分离,参数会被当作字符串处理,无法篡改逻辑;另外还会做输入合法性校验,限制特殊字符,同时给数据库账号配置最小权限,降低注入危害。

5. ThreadLocal的原理及在项目中的作用

思路

  • 原理:线程本地存储,为每个线程创建独立的变量副本,线程间互不干扰;底层是ThreadLocalMap(线程的属性),key是ThreadLocal实例,value是变量副本。
  • 项目作用:存储线程私有数据(如用户登录信息、请求上下文、数据库连接),避免参数传递繁琐,保证线程安全。

回答示例

ThreadLocal是线程本地变量,核心是为每个线程维护独立的变量副本,线程操作的都是自己的副本,不会互相干扰,底层依赖Thread类中的ThreadLocalMap实现。在项目中,我用它存储用户的登录token和用户信息,比如接口调用时,登录拦截器解析token后把用户信息存入ThreadLocal,后续业务层不用层层传递参数,直接获取即可;另外也用它管理数据库连接,保证每个线程使用独立的连接,避免多线程共享连接导致的事务问题。

6. 慢SQL如何定位?

思路

  • 开启慢查询日志:配置slow_query_log=ON,设置慢查询阈值(如long_query_time=1),记录耗时超阈值的SQL。
  • 工具分析:用explain分析SQL执行计划(看是否走索引、rows扫描行数);用show profile看SQL执行各阶段耗时;第三方工具(如pt-query-digest)分析慢日志。
  • 定位步骤:先查慢日志找耗时SQL→explain分析执行计划→定位无索引、全表扫描、关联查询不当等问题。

回答示例

定位慢SQL主要分三步:首先开启MySQL的慢查询日志,设置耗时阈值(比如1秒),把执行时间超过阈值的SQL记录下来;然后用explain关键字分析这些慢SQL的执行计划,看是否走了索引、扫描行数多少、是否有临时表/文件排序;还可以用show profile查看SQL执行时CPU、IO等阶段的耗时,定位瓶颈。比如项目中我曾通过慢日志找到一条全表扫描的查询SQL,exp

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务