- 一、前言
- 二、一面
- 三、小插曲
- 四、二面
- 五、中场休息
- 六、HR 面
- 七、小结
OPPO 我参与的是南京的线下面试,因为投递的时间比较晚(10.8),所以笔试都没有让我做,直接让我过去了
线下面分为两天,第一天技术面,第二天是业务面和 HR 面
除了技术面之外,业务面和 HR 面对于我来说都是新的东西
闲话少说,咱们打板儿就唱哦
二、一面
1、自我介绍
年龄,学校,专业,技术栈,竞赛,项目,实习
2、怼项目
3、实习负责的模块,具体讲一讲
js 逻辑核查引擎,讲了一下大概的业务
4、算法题:找众数,数据大约 10000 个(其实多少个都无所谓)
方法1:
使用 map ,统计每个数出现的次数,然后返回出现次数最多的那个数
空间 O(n),时间 O(n)
方法2:
排序,然后遍历统计
空间 O(1),时间 O(nlogn) <在使用快排或归并排序的情况下>
我为了求稳,写了一个归并排序
方法3:
使用大根堆,后面的逻辑和方法二类似(这个方法有点炫技,堆排序和构建不熟悉的同学不要写,不然可能会自己打自己脸)
空间 O(1) 时间 O(n),这个照理说是最优解(但还是那句话,堆构建除非自己十分熟悉,否则不要写!!)
5、创建线程的方法
继承 Tread 类,实现 Runnable 接口,实现 Callable 接口
然后重写 run 方法,调用 start() 方法
6、还有什么方法
可以使用线程池
7、介绍一下线程池
四个讲了一下,并对 ThreadPoolExecutor 多费了些口舌讲了一下其中参数的含义
8、线程怎么按照顺序启动
9、介绍一下 java 内存模型
(面试官是把内存模型和内存结构的概念搞混了,后来核实了,其实是要问内存结构)
每个线程私有一个虚拟机栈,程序计数器
还有本地方法栈
还有堆区,方法区
10、GC 算法
复制-清除
标记-清除
分代-清除
然后将 minor GC ,major GC 的过程讲了一下(新生代的 Eden区 s1,s2区,老年代是经过新生代多次 GC 放入,或者是触发了担保机制,或者是一开始申请的就是很大的对象)
11、OOM 怎么排查
(这一块儿的内容没看到,但是我在实习的时候遇到过内存泄露)
实习公司使用 ThreadLocal 导致内存泄露;处理方案
12、TCP UDP 区别
这个老问题了,几乎每个面试官都会问
13、http和 https 的区别
讲了一下区别,和https 加密流程
14、还有什么区别?
(这我还真就不知道了)
15、你了解哪些加密算法
MD5 ,非对称加密,(还有哪些我就不知道了)
16、数据库三范式
1-3 NF 分别表示什么
17、面向对象编程的注意点
多用组合,少用继承(MVC 架构经典方式)
开放扩展,关闭修改
(我记得高软课上上过好多,但是我只记得这些)
18、设计模式有哪些
我说了几个常用的,结果面试官是让我把 23 个全部说出来,这我哪儿记得臘♀️
19、写一下适配器模式
我就大概写了一下,没有完全写出来
18、有什么想问的
如果能进入贵公司,主要负责什么业务
自己的面试表现和对我的建议(因为规定,所以不好说)
- 小结:
一面面试官真的超级有耐心,对于我这样的碎嘴皮子、一个问题可以串出一堆话出来的人,还是很耐心的听完了我的所有回答
而且一面的时候,面试官也没有怎么刁难我,问的问题能回答个十七八吧
唯一让我不爽的就是,一天就面了一场,而不是把2、3面一块儿面了(心疼车钱)
三、小插曲
二面通知是一面后当天晚上发给我的,我想着和学校申请可能来不及,而且也看到不少人出校门,于是招呼没打就自己出去了
但是不知道怎么的,就被我的辅导员逮住了
还好自己心大,没有因为这件事影响我的面试发挥…
四、二面
二面是前所未见的业务面,主要考察了我的业务能力,把我的竞赛项目和实习项目挖了个底朝天…
1、自我介绍
2、怼项目
因为我的项目对于在读文章的各位来说,可能没有什么借鉴意义,我在这里也就不细致的分享了
我就把几个问的重要的点分享一下,供各位参考:
-
项目的执行流程(细化到每一步)
-
数据库设计(特别是该怎么更具业务去设计数据库表,我估计很多小伙伴在这里都会有些欠缺)
-
小组任务是怎么分的
-
你有什么优化的方式
-
技术选型(分布式id,框架,数据库这些)
-
排错经验
-
部署过程
-
具体使用
业务面的时候一定要把图画清楚了,并且要力求把面试官讲透彻了,而且在讲的过程中,要时刻思考下一步对不对,合不合理,必要的时候可以在原项目的基础上,进行合理的现场修改
3、SpringBoot 启动的流程你了解吗?
(这个我还真不了解)
我就大致讲了一下 Spring 监听 tomcat 创建完 servlet 容器后,自己再创建,然后没有然后了…
4、你在校的代码量怎么样
我直接报了个10w
5、我看你在简历里放了 github 连接,一般会在里面放什么项目啊?
(绝了,我有一个人工智能五子棋的项目,但是因为体量太小了一直不好意思放在简历上,这次终于有机会进行展示了)
里面放了我写的很多技术文章,后来转移到 csdn博客和微信公众号上了
里面还有一个我写的人工智能五子棋项目(我极力的想向面试官展示,但是被摁住了)
6、你为什么要写这个五子棋项目
为了装逼 为了好玩,同时也可以锻炼一下我的 java 编程水平和设计模式的知识
4、我看你没有参加笔试吗,咋回事?
(我瞬间就来精神了)
贵公司没有给我发笔试链接,就让我来面试了,但是我对自己的算法还是很自信的,要不我们现场写一道?
(后来面试官因为时间不够拒绝了)
5、有什么想问的
如果能进入贵公司,主要负责什么业务(oppo商城日活巨大,有很多服务需要去开发)
自己的面试表现和对我的建议(因为规定,所以不好说,和一面的时候一样…)
- 小结:
二面结束,面试官就让我在候场区等等,那个时候真的是狂喜,知道 hr 面有机会了,但是还是要在面试官面前保持一脸平静
五、中场休息
我在退出面试大厅的时候,大概看了一下大厅的布局,大概6列,前四列负责 一二技术面,最后两列是 hr
可能是因为我去的比较早吧,到 hr 面的还没几个人,我看到有一半的 hr 都跑到等候室拿蛋糕吃了
在等候的时候,我还打听了身边的候选人的情况,一问不得了,都是硕士,有南理工的,南航的,南大的…瞬间压力倍增…
不过自己好像是今天第一个 hr 面,瞬间又自信心爆棚
六、HR 面
HR 面是一个超级漂亮的小姐姐,而且超级友好,有点小激动
1、介绍一下自己
2、介绍一下你做的项目吧
3、有没有上线
有,后来撤了
4、流量多少
用户200左右,初始日活100左右
5、你是怎么鼓动同学们去使用的
发红包,鼓动班上的同学帮忙
6、帮助多少同学找到了丢失的宠物
2-3位
7、为什么后来下线
因为要把 ECS 腾出来放其他项目
8、你们小组成员都做了什么
这个问题在技术面和hr面的答案还真不能一样
项目全是我写的,技术面的时候,我就说是全栈开发,让面试官多问一点
但是和 hr 这么讲的话,就会显得我有点穷兵黩武,所以就是硬拆也要拆写模块说是其他同学帮忙写的
9、你是什么职位
副组长,技术总监
10、为什么没有当组长
一是以为我们的组长要时常和老师联系,而且他和那位老师有比较熟悉
二是因为我在技术开发这一块儿花的时间比较多
所以就将组长职位让出了
11、组长有和你意见不合的地方,你是怎么处理的
12、组长和你意见不合的时候,听谁的
13、为什么不考研
因为我就算读完研究生,也是去做后端开发的,那相比我本科毕业就去应聘后端开发的职位,考研的边际效益就很低了
而且我认为,对于应用开发,经验比在象牙塔里学习更重要
14、你大学四年的整块儿时间是怎么安排的
大一大二熟悉语言,熟悉数据结构,多刷算法题,巩固 coding 技巧
大三开始转 java ,学开发,写项目
大四开始秋招找工作
15、为什么你的绩点不是很高呢(我填的 50%,现实情况是还要低一点臘♀️)
(这真的是送命题,之前阿里电话面的时候,就因为这玩意儿黄了)
因为我的大多精力和时间都放在学习开发相关的知识上了,刚好考试那段时间,我也在忙项目和竞赛的事情,所以期末复习就耽搁了,导致我的绩点可能不是很理想
16、为什么没有担任班委呢
技术学习花的时间比较长,对这方面可能没有办法分出精力去完成了
17、有参加过什么活动吗
慰问孤寡老人
慰问残障儿童
18、是自愿的吗
前期是因为任务,后面发现这样的活动对社会有积极的意义,所以就主动申请了
19、你后期的一个职业规划是什么
3年初升高级开发,5-7年架构师
35岁创业
20、你现在有创业的一个企划吗
之前有一个线上教育的企划,但是因为最近对外部课程的打压比较多,所以暂时搁置了
21、你坚持的最久的一件事是什么
写技术博客,在 CSDN ,公众号上分享
22、阅读量怎么样
(带点小夸大,但没有太夸张)
23、有没有女朋友
(我老光棍了…) 暂时还没有
24、有什么想问的
如果能进入贵公司的话,负责的业务(java 能做的事很多,后面还要进行一波双向选择)
能不能提前过来实习
(薪资啥的没敢问,因为oppo的白菜价不清楚,怕要的高了出事)
- 小结
hr 面和技术面真的是完全不一样的体验,在和 hr 小姐姐介绍项目的时候,一定要弱化技术,强调业务,并且在回答每个问题的时候,一定要过脑子想一想,为 hr 营造出一个阳光大男孩儿,但是又有点 nerd 的形象
还有一点就是------hr 小姐姐真的太漂亮了,搞得我好几次都心不在焉的,好在最后发挥得还可以
七、小结
如果这个 OPPO 线下招聘顺利,加上我明天携程的 HR 面顺利的话,我的秋招就基本结束了
其实这两轮技术面都十分惊险,因为我的项目就是两个 vue + springboot 的小破项目,中间件微服务啥的都没用,要挖掘也挖掘不出什么难点,不过这些我发现除了小公司喜欢问之外,大厂也不咋问…
后面我可能会一篇文章,回顾一下我秋招的整个历程,并且可能会再分享一下我学习 java 的过程,希望到时候各位能捧个场
总之这次的分享就到这里吧,希望能获得 oppo 的 offer ,也希望明天的携程 hr 面顺利通过



