宏图物流(100-499,已发offer)
一面
- 自我介绍并介绍一下自己的项目架构(两分钟介绍,完全没满足两分钟,应该介绍一下项目的)
答案:面试官,您好,我本科毕业于绵阳师范学院计算机科学与技术专业,本科期间在我的指导老师的推荐下进入了一家企业进行实习,主要负责视频管理平台和图片标注平台,视频管理平台是和绵阳十几家幼儿园一起合作的项目,而图片标注平台则是和西南科技大学计算机院合作的项目,主要负责向计算机院提供已经标注好的图片数据,以供 AI 训练。现在在成都信息工程大学就读研一,自己有两个个人项目,一个是定制化代码生成器共享平台,一个是智能协同云图库。定制化代码生成器共享平台主要是面向开发者的平台,开发者可以通过关键字在该平台搜索到自己想要的代码生成器,在前端输入对应的参数,即可生成对应的项目框架,极大提高开发者的开发效率。开发者还可以将自己的项目通过平台提供的在线制作代码生成器功能,生成定制化的代码生成器,可以将代码生成器发布到平台中,供其他开发者使用。智能协同云图库可以作为私人云盘存储照片,也可以作为团队的共享图库,该项目还接入了阿里云扩图 AI 大模型。
- 对于 MySQL 中保证数据一致性的锁,你了解多少?
答案:
- 全局锁(Global Lock):
FLUSH TABLES WITH READ LOCK。用于全库备份(如mysqldump),加锁后整个库只读。这是最强的一致性锁,保证备份期间数据不变化,但在线业务慎用(除非备库或凌晨)。 - 表级锁(Table Lock):分为表锁(
LOCK TABLES ... READ/WRITE)和元数据锁(MDL)。MDL是MySQL 5.5后自动加的,用于保护表结构变更(DDL)时的事务一致性。面试痛点:长事务未提交会导致MDL锁堆积,造成数据库连接池爆满,这是生产环境的常见故障。 - 行级锁(Row Lock):InnoDB核心特性。只有通过索引条件检索数据时,InnoDB才会使用行锁;否则会升级为表锁(这往往是性能瓶颈的根源)。
InnoDB的行锁其实有三种算法:
- Record Lock(记录锁):锁定索引记录本身。用于唯一索引等值查询且记录存在时。
- Gap Lock(间隙锁):锁定索引记录之间的“间隙”(不含记录本身)。关键作用:在可重复读(RR)隔离级别下,防止幻读,保证数据一致性。但间隙锁是并发性能的杀手,容易导致死锁。
- Next-Key Lock(临键锁):Record Lock + Gap Lock 的组合,锁定“记录+记录前的间隙”。这是InnoDB RR隔离级别的默认锁。
- vue和react的区别
- 一个项目中如果你对整个项目的源码都不熟悉,前端UI报错,后端日志记录了报错信息,测试那边之前又通过了,现在需要晚上立即验收这个功能,而其他同事又很忙,你会怎么处理这个事情
- 你现在属于研一阶段,研二阶段不是会跟着导师做项目吗?你的小论文进度如何,如果你来公司实习会不会影响你的小论文进展
二面
1.你对那一个前端框架比较熟?
2.vue渲染页面和获取后端数据是异步的,还是同步的(是等后端返回数据后再渲染页面,还是先渲染页面再获取数据)
3.详细解释一下定制化代码生成器共享平台的怎么生成的代码生成器
4.你生成的代码生成器只针对Java语言,还是所有语言
5.你支持所有语言,那你怎么处理这些语言之间的语法差距(答案:不涉及更改项目的逻辑,只是改变项目中的功能的生成与否,所以不会处理不同语言的语法差距)
6.详细解释一下你的智能协同云图库怎么接入的扩图 AI
7.对于权限校验,你有几种方法来实现(三种:AOP,拦截器,Sa-token权限校验框架)
8.详细解释一下前后端文件之间的传输是怎么进行的
9.薪资待遇
10.你日常生活中使用的AI开发软件有哪些?
反问:
1.公司开发团队规模
2.公司开发流程是怎么样的?
3.工作时间制度(早九晚六,中午休息1个半小时,双休)
4.公司面向的业务(忘记问了)
