24届考研-java面经(华为OD)
背景:
24届大学科班,毕业后一直在考研,之前没有实习等相关工作经验。考研失败后考虑来OD工作,于是通过栗栗姐推进机考和面试流程,最后成功拿到了offer。
机考:
机考可以通过栗栗姐获得现成的题库和题解作为参考,刷好题后可以让栗栗姐申请机考。准备时最好先自己想再看题解思路,这样机试时不容易卡思路,而且也能应对代码重复度的检查。双机位考试,摄像头一定要调试好,机试时保持网络畅通,手机不要接听电话之类的,避免被记录下违规行为,这样对之后的找部门也会有影响的。栗栗姐在机考前会发机考的行为规范,大家务必重视。
T1:分披萨100分。"吃货"和"馋嘴"点了一份圆形披萨,粗心的服务员将披萨切成了每块大小都不同的奇数块,且肉眼能分辨出大小。两人决定轮流选取披萨块,从"吃货"开始,每次选取时必须从缺口处开始选。"馋嘴"每次都会选择当前最大块的披萨,而"吃货"知道"馋嘴"的选择策略。已知披萨小块的数量及每块的大小,求"吃货"能分得的最大披萨大小的总和。
T2:AI面板识别100分。AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),请输出先行后列排序的指示灯的编号,排序规则:每次在尚未排序的灯中挑选最高的灯作为的基准灯;找出和基准灯属于同一行所有的灯进行排序。两个灯高低偏差不超过灯半径算同一行(即两个灯坐标的差 ≤ 灯高度的一半)。
T3:文本统计分析200分。有一个文件,包含以一定规则写作的文本,请统计文件中包含的文本数量 规则如下:
1.文本以“;”分隔,最后一条可以没有“;”,但空文本不能算语句,比如“COMMAND A;”只能算一条语句。 注意,无字符/空白字符/制表符都算作“空”文本。
2.文本可以跨行,比如下面,是一条文本,而不是三条:
COMMAND A
AND
COMMAND B;
3.文本支持字符串,字符串为成对的单引号(')或者成对的双引号("),字符串可能出现用转义字符()处理的单义字符()处理的单义字符(比如"your input is: """)和转义字符本身,比如 COMMAND A "Say "Hello"";
4.支持注释,可以出现在字符串之外的任意位置,注释以“--”开头,到换行结束,比如:
COMMAND A; -- this is comment
COMMAND -- comment
A AND COMMAND B;
注意,字符串内的“--”,不是注释。
综测:
都是选择题,注意前后答案的逻辑尽量一致。
综测完后就可以给栗栗姐发简历选部门了,部门会提前和你打电话沟通情况,合适的话就会推进面试流程。面试是会议视频面试,根据栗栗姐提供的八股文资料和面试注意事项准备好。有需要准备的也可以和栗栗姐说,他会等你准备好后再去推荐部门面试
HR资格面:
1.自我介绍
2.问教育背景
3.简单介绍下简历上的项目
4.gap期间做了什么
5.最有成就感的一件事
技术面
分为两个环节:手撕代码和八股。手撕代码难度不算大,把力扣hot100刷完就差不多了。我遇到的手撕都是面试官出题然后自己在本地ide上写,一般能通过面试官给的测试用例就可以,除非面试官特地要求不然不会考虑效率,写完后会叫你说一下代码思路。八股环节会重点考察简历上的项目和技术栈,所以要把简历准备好,不会的不要写上去。不过没写在简历上但是比较基础的知识点也会问,所以要准备的充分一点。
技术一面:
1.cas原子操作以及ABA问题
2.线程池的类型和调优
3.sql优化
4.spi机制
5.根据项目问redis的数据类型和用途
手撕:岛屿问题求岛屿的周长
技术二面:
1.局部变量,全局变量和静态变量的区别和作用域
2.根据map的put操作说下底层原理
3.map线程安全吗?ConcurrentHashMap如何保证线程安全?
4.介绍一下SpringMVC和SpringBoot。
5.redis中的LRU算法
6.Redis+Caffeine多级缓存架构
7.Redisson分布式锁和Lua脚本
8.NIO等通信模型
9.tcp,ip,http分别是哪一层的协议
10.数据传输的半包和粘包问题
手撕:面试官看我简历上涉及LRU算法于是让我写个LRU缓存,这个力扣hot100上也有原题。
技术三面:
1.hashset和treeset区别
2.cas原子操作
3.分布式锁实现
5.mysql性能优化和基本查询语句
6.redis缓存雪崩的解决方案
手撕:给一个字符串如:{A{AB{B}A}C},每个括号内的字符算同一层,要求统计每个字符的层数,输出:A:2, B:2, C:1。
综合主管面:
先是自我介绍,然后也主要是围绕项目来交流,不过更侧重开发流程以及如何解决问题这方面,比如接口文档,抓包这些,考察开发过程中使用的工具。同时也会问项目中某个标准是如何设计的,当初为什么会写这么一个项目。此外就是聊一下校园内的事,问你为什么选择这里,平时如何学习java的,以及介绍一下部门业务。
总结:
好好准备机试,机考分数尽量高些,面试时手撕代码一定要过关,撕不出来可能就挂了。简历上有项目的一定要搞懂每一个细节,面试官们很喜欢根据项目问八股,被拷打时也不能急,尽量说下自己的思路,放平心态,面试官们还是很不错的。
最后再次感谢栗栗姐的全程跟进和陪伴,无论是机考还是面试都会事无巨细地发攻略和注意事项,面试的时候也会有提醒,可以说十分称职了。平时有问题问栗栗姐也是很快就会回复,我晚上面试她也会等着帮我问结果,让我非常的安心。大家如果对OD感兴趣的可以找栗栗姐咨询。最后再说一句,选了栗栗姐的同学就不要把身份证号给别的HR了,不然简历被锁了就没办法再让栗栗姐跟进了。
#内推##java##华为od##华为##面经#
