这篇文章主要是对一位小伙伴华为 Java 社招面试经历的介绍,将华为 Java 面试的流程、相关面试题以及参考答案都详细地记录了下来,有需要的朋友可以进行参考。
本人整理了 20 年的面试题大全,此大全涵盖了 spring、并发、数据库、Redis、分布式、dubbo、JVM、微服务等方面的总结。下图为部分截图,若需要可加群 795983544,进群后找管理领取,暗号为 CSDN。

6 月底时华为 cloudsop 部门打电话询问他是否要参加面试。那时小伙伴正在换工作,所以就把简历发给了华为的 hr。人事进行审核后,经过一系列的面试和机试,最终他顺利拿到了 offer。由于考虑到未来的职业规划,他手中还有其他一些 offer 尚未确定,顺便在此向大家分享一下面试华为的经历。
华为在通讯行业处于领先地位,它很看重学历。有些小伙伴可能因为毕业于不是特别优秀的一类 985、211 院校,所以最终定级不是很理想。不过总体而言,华为的面试难度不算大,主要包含电话技术面、机试、技术综合面以及 hr 综面。
1.电话技术面试
主要询问了最近的项目,同时也涉及了少部分底层框架的原理,整个过程大概持续了四十分钟。
1.MyBastis如何映射,MyBatis原理。
2.如何实现高可用的,你的系统怎么达到高可用的?
3.redis底层实现,redis是如何更新缓存的?
4.集合框架有哪些是线程安全的?哪些是非安全的?
你们在开发过程中是怎样进行单元测试的?单元测试的覆盖率情况如何?又是如何实现自动化测试的?
6.SpringMvc执行流程,java常用设计模式。
eureka 如何保证可用性呢?它的底层实现是怎样的?它与 zookeeper 有哪些区别?
8.高并发相关的问题,concurrent相关包。
为什么选择使用 redis 做缓存而非其他的消息队列如 kafka 呢?同时还要考虑项目的稳定性。
10.事务一定会锁表吗?
11.java并发和线程同步,同步机制,锁具体解释一下。
redis 进行集群搭建,同时涉及分词算法以及 redis 主从同步机制。
常用的线程池,那么 threadlocal 有什么作用呢?以及多线程并发的解决办法是怎样的呢?
2.技术综合面试
现场进行面试,恰逢华为本月的最后一个周末需要加班,面试时间约在了早上 10 点。到达现场后,看到有许多人前来面试。等待了大约 40 分钟后,进入了一间有很多面试官的房间。房间里每人一张桌子,面前竖着一把椅子,这种面试形式像是流水式的。这个技术馆年龄看起来大概三十几岁,头发已花白,说话速度很快,仿佛在赶时间。期间没有询问技术框架方面的内容,一直围绕着小伙伴的项目展开讨论,让小伙伴手绘项目交互图、相关表设计以及用到的算法,还询问当时是如何考虑的,主要在高可用和高性能方面问得较多。
3. HR面试
技术面试结束后,出来等了大约 10 分钟。接着又进入刚才的房间,来到另一张桌子前的 hr 面前。面试的 hr 看起来比刚才的技术官更显老成。他自称做了十几年 hr 。(他头发……显然没什么头发了,难道 hr 也要加班到凌晨?)中间主要是各种背景调查。为了开出合适的薪资包,还是把目前的薪资状况全部告诉了他。(没办法,这是个经验丰富的人啊!)华为的年终奖与考评存在直接关联。因此,务必留意你在上一家公司的评级情况,以及在 hr 面试过程中出现的问题,这些并非毫无根据,而是都已被做了标记。所以,一定要保持诚实,千万不要包装得太离谱。在谈 offer 时,可能是之前的面试表现还算不错,hr 也相当爽快,小伙伴所要求的薪水与最终的也相差不大。
4.准备材料
hr 在最终确定薪酬时需要提供最近三个月的工资流水或截图,还需要提供毕业证、学位证、四六级证书的照片以及身份证的正反面照片,一般公司都会有这样的要求。
5.网上填写个人资料
然后登录 hr 并发送给你的邮件中的连接,登录进去之后要填写一系列的个人信息,其中有学历方面的信息,还有工作经历方面的信息,以及项目经验方面的信息,同时还有华为亲属的信息,这就类似于一份华为版本的简历。
6.机试题
这一通过后,需做一份华为社招的机试题,此机试题出自牛客华为社招的题库。网上的人说,这些题的难易程度有难有易,基本上都是关于字符串以及集合比较基础算法的题。在做之前,可以先在牛客上面进行练习。