国企混子+考研二战失利,社招华为od面经
本人某中下游92高校科班学渣。20年毕业,去了东南沿海某国企。想着边工作边考研,奈何实在是能力有限,与研究生实在是没缘分。3.15日分数线下来之后,已经过线无望,开始春招。正好在boss上有华为hr私聊我,其实多多少少也看到过od的一些负面消息,但感觉一年工作经验+半年没工作(后半年是裸辞考研),也没啥更好的选择了。而且也从同学那边了解到od的薪酬和工作内容基本没差别,于是就投投看看。
简历很快就通过了,然后安排笔试。hr说可以自己先去牛客练习一下输入输出,我大概练习了两天,就去做了笔试。可能因为本科是目标院校,所以题目不算太难,感觉是2道easy,1道hard?easy的记不清了,反正很简单。hard好像是LeetCode10正则表达式匹配。最后按百分比算分好像是325分,hr跟我说150分就算过。
笔试之后做性格测试,中间还因为内部系统的原因拖了几天。终于3.26日安排了技术一面。
技术一面
首先聊了项目十分钟,之前在国企项目比较垃圾,这块聊得我很虚,没什么可说的。面试官大概了解了之后,就开始问具体的知识点了。
1.介绍一下kafka组件?(毕设中有用到)
生产者 消费者 消费者组等等
2.如何保证消息不重复的?
offset管理 两个offset
3.为什么要两个?
一个保证不重复消费 一个保证consumer rebalance
4.offset提交时机?
不太清楚
5.MySQL索引结构?
B+树,索引节点多叉
6.es的索引是什么样的?
倒排
7.redis缓存击穿怎么解决?
不过期,定期检查。牺牲吞吐量,阻塞线程,让其互斥。
leetcode654最大二叉树 中等 挺简单的,按题目要求递归就完事了。
一共43分钟。感觉一面确实不是很难,可能是面试官比较累吧,语气比较疲惫。
1.介绍一下kafka组件?(毕设中有用到)
生产者 消费者 消费者组等等
2.如何保证消息不重复的?
offset管理 两个offset
3.为什么要两个?
一个保证不重复消费 一个保证consumer rebalance
4.offset提交时机?
不太清楚
5.MySQL索引结构?
B+树,索引节点多叉
6.es的索引是什么样的?
倒排
7.redis缓存击穿怎么解决?
不过期,定期检查。牺牲吞吐量,阻塞线程,让其互斥。
leetcode654最大二叉树 中等 挺简单的,按题目要求递归就完事了。
一共43分钟。感觉一面确实不是很难,可能是面试官比较累吧,语气比较疲惫。
第二天被告知一面过了,二面安排在3.28
技术二面
项目十分钟,问了并发量有多少,具体实现等等。也比较虚,项目太烂了┭┮﹏┭┮
1.java继承和接口的区别?
上来有点紧张,答得不是很全。提示了从语法层面和设计层面上答。
2.new 两个相同的字符串,用 == 来比较,结果是什么?为什么?
字符串常量池的角度去答。intern等等等等
3.反射的原理?优缺点,举一个使用场景?
运行时获取类内的属性和方法,编程更灵活。jdbc连接数据库,用到class.forName。
4.设计模式了解吗?
不太了解。
5.Java的队列应该用数组还是链表来实现比较好?
有点懵,我说都可以实现,他说肯定有一个比较好的实现。我就说链表吧,头尾指针操作比较方便。
6.那栈用什么实现比较好?
也是有点懵,我就说了数组。
5 6题感觉没有太get到他的点,可能要自己列举使用场景吧,当时有点慌。
7.讲一下volatile?给了个多线程争用的使用场景,问能不能保证数据是正常的?
底层实现blabla。。。不能,不保证原子性。
8.那怎么解决?尽可能说还有什么解决方案?自己总结一下volatile的使用规则?
redis缓存延迟写回,syn,lock。提示了一下,atomic类。
9.avl树是怎么旋转的?
四种,有点慌,要不是去年考研了,不然就G了。
10.线程池的参数,之间的关系,线程工厂?
线程工厂不太了解。其他说了一下
还问了一下spring AOP有自己用过吗? 只了解代理模式的实现原理,具体业务没有写过。
leetcode 2 两数相加 中等
一共1h08min。二面就很多是开放性的问题,要你自己去尽量多的说,有些问题感觉答得没有什么章法。但是感觉一面二面的代码题确实不难,感觉华子还是看手撕代码的,撕的顺应该问题不大。
1.java继承和接口的区别?
上来有点紧张,答得不是很全。提示了从语法层面和设计层面上答。
2.new 两个相同的字符串,用 == 来比较,结果是什么?为什么?
字符串常量池的角度去答。intern等等等等
3.反射的原理?优缺点,举一个使用场景?
运行时获取类内的属性和方法,编程更灵活。jdbc连接数据库,用到class.forName。
4.设计模式了解吗?
不太了解。
5.Java的队列应该用数组还是链表来实现比较好?
有点懵,我说都可以实现,他说肯定有一个比较好的实现。我就说链表吧,头尾指针操作比较方便。
6.那栈用什么实现比较好?
也是有点懵,我就说了数组。
5 6题感觉没有太get到他的点,可能要自己列举使用场景吧,当时有点慌。
7.讲一下volatile?给了个多线程争用的使用场景,问能不能保证数据是正常的?
底层实现blabla。。。不能,不保证原子性。
8.那怎么解决?尽可能说还有什么解决方案?自己总结一下volatile的使用规则?
redis缓存延迟写回,syn,lock。提示了一下,atomic类。
9.avl树是怎么旋转的?
四种,有点慌,要不是去年考研了,不然就G了。
10.线程池的参数,之间的关系,线程工厂?
线程工厂不太了解。其他说了一下
还问了一下spring AOP有自己用过吗? 只了解代理模式的实现原理,具体业务没有写过。
leetcode 2 两数相加 中等
一共1h08min。二面就很多是开放性的问题,要你自己去尽量多的说,有些问题感觉答得没有什么章法。但是感觉一面二面的代码题确实不难,感觉华子还是看手撕代码的,撕的顺应该问题不大。
HR面主管面
二面结束第三天被告知技术面过了,但是清明节前主管没时间了,所以安排在节后。
基本都是常规问题,你工作中遇到的最大的困难?怎么解决的?家住哪,什么时候能到岗等等。没问技术问题。
然后介绍了一下部门的情况(计算产品线),问了问兴趣爱好聊聊天就完了,这两面加起来没半个小时。
主管面后的当天晚上被告知通过了,然后等待offer审批。4.21offer到手。
整个流程大概如此,感觉od对于我这种情况来说还是个不错的选择了。之前在垃圾国企,天天应付甲方的奇葩需求,实在是难受。感觉至少大厂工作内容上,代码规范上还是要好得多的。如果努努力,能转正就更香啦。
#2022春招##面经##Java##社招#