CVTE 2023web后台实习(寒暑假) 广州 已OC
广州某双非 大三软工专业 已OC 年后入职 第一次写面经 攒攒人品~
笔试
算法
1.约瑟夫环,m人里数到第n个出局,谁最后活下来。
2.找数组里重复的数字
系统设计题
如何设计一个数据服务产品,有什么模块,模块间数据流。
一面
12.23 11点20开始 面了40+分钟
自我介绍(面试官:简单介绍自己,做了什么项目,掌握什么技术)
1.说说项目业务流程?难点在哪?
2.数据库表怎么设计的,有几张表,表里有什么关键字段?表之间什么关系?
用户、微信用户表、商品、订单、订单子项、支付表等。
3.user表为例子,怎么查询用户?(记不太清了 回想起来有点忘了)
我答 用id主键查询,面试官问:这样会有什么问题?
我实在想不到,面试官说:如果用id主键查询信息,id是自增的,用户有没有可能推测出别人的id是什么,对别人的id进行操作,是不是有风险?
我答,这可能涉及鉴权授权问题?不把自增id返回给前端也不太现实啊?我真不太明白。
面试官说:分布式系统下,你写的sql语句,直接暴露出id,有一定风险。你可以再加一个uuid字段,保证每行数据不会被推测出id,用uuid来进行数据传输(大概是这个意思?)
总结:主键自增是对的,可以再设置一个uuid字段,保证sql语句的安全性。
4.说说MySQL InnoDB索引结构?
5.假如你的项目上线了,有百万用户活跃的登录情况,用手机号密码登录的业务,要建立索引吗?
要,要建(手机号,密码)的联合索引,这样能索引覆盖,避免回表(详细讲了聚簇索引和非聚簇索引的回表过程)。
6.查询百万数据的表,进行分页的时候,查第1页和第100页有没有性能差别?
8.说说springboot跟spring相比有什么优点?
9.说说springboot或者springMVC的执行流程?
10.说说运行springboot的main方法,发生了什么?
11.Springboot拦截器 过滤器 了解吗
拦截器 监听器 过滤器 这块比较陌生 答得不好 直接说不熟
12.mybatis里#{}和${}有什么区别?
14.说说线程池?怎么设置线程池参数?
15.了解JVM?你说说JVM的分代年龄内存回收机制
16.聊聊计算机网络吧,HTTPS加密过程是怎样的?
17.讲讲三次握手
18.反问
公司web后台有什么业务?
没什么问题了 面试到此结束。
二面
面完一面 第二天下午就打电话来约二面 12.25面
面了50+mins 集合、多线程等八股也没怎么问 问了很多真实学习/业务场景
1.自我介绍+讲项目具体业务流程
2.讲讲MQTT协议,和HTTP有什么区别?(我的项目是物联网项目 用到了MQTT协议)
4.下订单流程,并发环境下怎么保证减库存的正确?
1).数据库加锁
2).spring事务
3).Redis锁/队列
例:abcdbbdcABD
6.聊聊你认识的代码规范
Java阿里开发手册
7.代码规范比较深刻的部分
结合实际讲到了数据库规范,建表规范,索引规范。
8.项目开发比较深刻的事
部署阶段有意思的事,一是用了Jenkins CI/CD部署,服务器内存不够OOM,二是linux服务器被同学rm -rf ../了 temp目录没了 导致ssh远程连接不上。
9.说说自己认为自己比较擅长的技能
结合经历 说自己的学习能力 bug定位解决能力
10.说说自己对软件开发的感受
结合自己经历balabala 提到了 对web开发有热情 不仅如此 还对底层也有点兴趣
11.你对底层有兴趣?细说
提到了专业基础课,操作系统,编译原理。
此外,对JVM底层实现比较感兴趣。
12.你的项目有写文档吗
有,一开始是用共享文档写的接口文档。提到可以用swagger,配合注解自动生成接口文档网页。
13.了解UML类图吗,有在项目中用到设计模式吗?
有的,这学期也有学设计模式。操作系统课设里面就用到了设计模式,单例,工厂,策略,模板。
14.学习过程有没有写博客之类的来总结知识点?
本地用typora做笔记,想等到有系统总结的时候再发博客。
15.最近的学习目标学习任务是什么?
分布式微服务!
16.五年内的职业规划?
初级程序员->高级程序员->架构师
17.你觉得你朝这个方向努力要怎么学习?
面试结束,反问环节
结合业务,问我们实习生的工作内容会是什么。