华为OD面经 - java
之前读了很多牛客网上的面经,这里回馈一篇。
背景:19年毕业,做了3年半的java开发,1月份前东家大规模裁员,被毕业。3月10号左右接到hr电话,做了个简历的投递。
机试3.22:3.15号左右开始刷题,刷了牛客网大概70道题左右,3.22号做的机试题,运气比较好吧,拿了个390,后面发现还可以多看看csdn上总结的一些题库,那上面的原题几率挺大的;当时没看到相关的提示,就只顾着刷了些牛客网上的题。
性格测试3.25:出机试成绩,约了性格测试,性格测试HR还给培训了些注意事项,自己也读了些网上的面经,简单是简单,还是要认真对待的,主要注意的就是选积极向上的,前后一致的,还是比较难选的,可以在网上找找其他详细的帖子。
一面3.29:一面,一面之前主要复习了些八股文,但是好像没啥用,没怎么问道。开始做自我介绍,然后开始从项目开始问起走,还好几年开发经验,问的问题还比较简单,自我感觉回答问题还是不大。
主要问了的点:
1、 自我介绍,项目情况,从项目问起,问了下项目间怎么调用的。
------如实答了些,一个httpCliet和Spring带的restTemplate,后面深入问了下一些具体方法,没怎么答上来,就答了些如何使用的。
2、JVM,OOM的实际调优经验,为什么会产生OOM,年轻代里面包含什么,垃圾回收机制这些。
----- 这块确实做过,所以回答得还行。
3、Redis,主要问了下怎么运用的。
----- 虽然用过,但是自我感觉答得一般,面试官也没有怎么深入问。
4、线程,有没有遇到过线程安全的情况。
----- 简单回答了一个平时多线程的问题,用sychronized解决的,以为会深入问问sychonized,结果问了下分布式的情况,当时答了下redis控制的分布式锁,还有zk、数据库没答,可能当时脑袋卡壳了。
5、线程池参数怎么设置。
----- 这个问题没答出来,虽然有用过,但是确实没怎么考虑这些情况,想想当时也是想当然的设置的参数了,后面问面试官的时候,问了下他,后面下来也查询了下相关资料。
6、算法题。
------leetcode原题18,因为没怎么刷leetcode,所以只能暴力破解了,后面多看了几题,算是个双指针问题,还是比较简单的,只能说当时准备的方向不怎么对。
时间分配是先面试30分钟,再做题30分钟,基本上就1个小时多一点。
二面(3.30):
由于之前准备的一些8股文用处不大,又跑去刷了些leetcode算法题,主要看了一些解题思路,总结了一些常用的思路,代码完成时间是不怎么够,大概看了40题左右。
1、算法题(leetcode1891)
------先来就做了个算法题,完成度80%吧,有个二分查找的点没有优化,时间复杂度有点高。
面试官还是挺好,一起分析了代码,并指出我代码的一些问题。
2、JVM相关的
------将了实际操作的两个例子,面试官也觉得答得还行。
3、stream流相关的
------答得有点小瑕疵
二面时间控制和一面差不多,1小时完成,基本问题不大。
面试问题,我只写了些印象比较深的,总的来说问的感觉不是太深,太深估计我也不怎么答得上来
3.31:通知技术面过了,准备些材料。
总结:
1、机考:csdn上有题库,应该要购买,当时没看到哪里有说明,自己就只刷了牛客网的题。
2、面试:大概率还是从项目开始问的,准备了些8股文用处确实不大,基本在靠平时积累答得题,不如多刷点题,那原题18我肯定是能刷到的(手动cry)。
3、算法题:因为平时工作不怎么做,所以很多都只能做到简单的暴力破解,这个思路也来得最快,题还是建议多刷点,然后总结下基本的解法。
下周还有两面,还没给具体时间