OPPO 春招 后端工程师 一面+二面+HR面
更新:泡了一个多月,居然等到了offer,已签意向
时间线
2.29 投递
3.8 性格测试
3.9 笔试
3.12 一面
3.19 二面(上午) + HR面(下午)
4.24 oc
一面面经
40分钟,面试官很友好,没有答上来的会补充,面试体验挺好的。
- 自我介绍
项目问题
- xxx功能怎么实现的,怎么保证安全性
- API网关跟Nginx有什么区别
- 场景题:流量很大的时候发现响应速度很慢,但是sql语句的查询速度显示正常(即不是查询语句慢的问题),可以分析一下是什么原因吗?(没太理解,然后面试官补充,因为我项目中用了Dubbo,他想问的是在流量突然变得很大的时候,使用Dubbo会有什么问题)
八股文
- final可以加在哪里,有什么作用
- java有哪几种锁
- synchronized锁是怎么升级的
- 对象锁和方法块锁在指令上的区别(太菜了没了解过)
- AQS怎么实现公平和非公平
- 线程有哪些状态
- 如何查看现在使用cpu最高的一个线程(top -a)
- 创建线程有哪几种方式
- 线程池的工作原理(7个参数,及工作流程)
- HashSet是如何实现的,如何保证不重复
- HashTable可以put一个Null吗(不能,因为需要用key去计算hash值,如果key为null会抛出空指针异常)
- HashMap在1.7和1.8之间做了什么优化
- ConcurrentHashMap呢
- Redis内存淘汰策略有哪几种
- Redis如何加锁,如何用Redis实现分布式锁
- 追问:使用setnx会不会导致死锁(会,必须设置过期时间,使用事务原子命令SET key value EX time NX)
- Redis有哪几种高可用部署方式(Redis真不熟。。面试官帮忙说了,主从、哨兵、分布式集群)
- Redis如果不用事务命令怎么保证原子性(Lua脚本)
- 使用Redis分布式锁有一个问题,不管是主从模式/哨兵模式下,如果主节点挂了,key没有同步到主节点,查询不到key就又可以获取锁,怎么解决(Redisson)
- 场景题:如果锁超时释放了,业务还没执行完,其他线程这个时候是可以获取到锁的,但是不想让其他线程获取到锁,如何解决(用一个定时器/看门狗,在锁快过期的时候去判断业务执行完了没有,没执行完就重置过期时间)
- NIO跟BIO、AIO的区别
- JVM的垃圾回收算法有哪几种
- MVCC主要用在哪里
- 事务的隔离级别
- (面试官本来好像想问一下python,但是我不太熟,只是会用)
- Redis缓存穿透是什么,怎么解决
- Spring三级缓存为什么要设置第三级
反问
- 现在面试的岗位是什么部门的(官网上给了8 9个方向)
- 技术栈
- 面试流程(回答:两轮技术面+一轮HR面)
- 反馈时间(2-3天)
二面面经
40分钟,主要是问项目,优化方向,场景题,感觉比一面紧张,发挥一般
- 问了硕士的专业学的什么,以及硕士毕业设计用到的技术(比较浅,没有深入问,因为跟岗位不是太相关)
- Spring Boot 是什么(简单讲了一下和 Spring 的区别)
- 配置文件用的是yml格式吗?有没有用其他格式?yml格式有什么好处?
- Spring Boot 中有解决跨域问题吗?怎么解决的?
- 怎么理解微服务?
- 说一下 Redis 缓存穿透
- 为什么读硕士之前会先去工作?
- 问了一些之前工作的内容
- Spring Boot 和 Spring Cloud 有啥区别?
- 进程调度是怎么进行的?(没复习到。。。)
突然面试官说有个会议,然后换了一个面试官(因为没开摄像头,一开始还没发现)
- 个人项目中为什么要选择MySQL?目的是什么
- 事务的特点
- MySQL 并发怎么保证不会有冲突
- 什么场景下会导致MySQL的查询和插入效率降低?
- 数据量达到多少的时候会影响查询效率?
- 个人项目中为什么实现某个功能
- HTTP状态码中404和403分别代表什么意思?
- 为什么要在项目中使用网关?
- 对于日志记录有没有思考过应该写什么样的日志,该怎么写?
- 日志怎么分级?分别在什么情况下会用INFO、WARN、ERROR级别?
- 发现 WARN 和 ERROR 级别的日志会怎么去处理?
- 根据项目给出了一个场景题:如果未来请求变多,有没有思考应该怎么做?
- 基于个人项目问的:搭建系统需要考虑哪些问题?如何衡量系统的质量?
- 怎么去分析某个请求耗时长的问题?
反问
(第一个面试官正好回来了)
- 部门负责的业务
- 公司氛围
HR面
20分钟,主要是了解个人的过往经历,气氛比较轻松,聊天。应该每个人的问题都不太一样,就分享一些不透露个人隐私的问题作为参考吧
- 自我介绍
- 为什么工作以后又想去读研?
- 为什么选择这个学校读硕士,以及为什么选这个专业?
- 为什么想从事后端的岗位?
- 问了一些工作经历的细节
- 为什么会选择去这家公司工作?
- 读研压力大吗?
- 求职的时候,对于进入的行业或者从事的业务上有什么规划和考虑吗?
- offer情况
- 秋招情况
- 春招之前的这段时间是怎么安排的?
反问
- 有没有定岗位(还没定,后续分配)
- 针对应届生的培训制度
- 工作强度(早上9-9:30,晚上8点左右)
- 流程推进需要多久(快的话这周内,慢的话2-3周)