这篇文章主要介绍了一位小伙伴的华为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.集合框架有哪些是线程安全的?哪些是非安全的?
5.开发中你们如何进行单元测试?覆盖率如何?自动化测试怎么达到?
6.SpringMvc执行流程,java常用设计模式。
7.eureka怎么保证可用性,及底其层实现,与zookeeper有什么区别?
8.高并发相关的问题,concurrent相关包。
9.为什么使用redis做缓存而不是其他的消息队列入kafka,以及项目的稳定性。
10.事务一定会锁表吗?
11.java并发和线程同步,同步机制,锁具体解释一下。
12.redis集群搭建,分词算法、redis主从同步机制。
13.常用的线程池,threadlocal有什么用,多线程并发解决办法。
2.技术综合面试
现场面试,正赶上华为本月最后一个周末加班,约在了早上10点,到现场后发现有很多人都来面试,等了差不多40分钟,去到一间有很多面试官的房间,一人一张桌子,面前立着一把椅子,像是流水面试。这个技术馆看着差不多三十几岁,头发花白,说话相当快,像在赶时间,中间没有再问技术框架上的内容,一直围绕小伙伴的项目讨论,让他手绘项目交互图,相关表设计,用到的算法,当时是怎么考虑的,主要还是高可用,高性能方面问的比较多。
3. HR面试
接着技术面试完,出来等了差不多10分钟,就又进到刚才的房间,去到另一张桌子的hr面前,面试的hr看着比刚刚的技术官还要老成,据他自己说自己做了十几年的hr,(头发…显然是没什么头发了,难道hr也要加班到凌晨?)中间无非就是各种背景调查,为了开出适宜的薪资包,还是将目前的薪资状况跟他和盘托出了,(没办法这是个老鸟啊!)华为的年终奖和考评直接挂钩,所以一定要注意你最近在上一家公司的评级,还有hr面试过程中的问题,都不是空穴来风,他都有做标记,所以一定要诚实,切勿包装的离谱,谈offer的话,可能是之前面试的还算不错,hr还是相当的爽快的,小伙伴要的薪水也是和最终的差不太多。
4.准备材料
hr在最终定薪需要提供,最近三个月的工资流水/截图,毕业证、学位证、四六级证书照片、身份证正反面照片,这是一般公司都要的吧。
5.网上填写个人资料
接着就是登录hr给你邮件发的连接,登录进去填写一堆的个人信息, 包括学历,工作经历,项目经验,华为亲属信息,这个类似一份华为版的简历。
6.机试题
这一通过后,还要做一份华为社招的机试题,出自牛客华为社招的题库,题目难易程度据网上的人说,有难有易,基本上都是一些字符串,集合比较基础的算法的题,做之前可以再牛客上面先练一下。
下面分享一下他在机试种遇到的。
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;
/**
* 五张牌,每张牌由牌大小和花色组成,牌大小2~10、J、Q、K、A,牌花色为红桃、黑桃、梅花、方块四种花色之一。 判断牌型:
* 牌型1,同花顺:同一花色的顺子,如红桃2红桃3红桃4红桃5红桃6。
* 牌型2,四条:四张相同数字 + 单张,如红桃A黑桃A梅花A方块A + 黑桃K。
* 牌型3,葫芦:三张相同数字 + 一对,如红桃5黑桃5梅花5 + 方块9梅花9。
* 牌型4,同花:同一花色,如方块3方块7方块10方块J方块Q。
* 牌型5,顺子:花色不一样的顺子,如红桃2黑桃3红桃4红桃5方块6。
* 牌型6,三条:三张相同 + 两张单。
* 牌型7,其他。
* 说明:
* 1)五张牌里不会出现牌大小和花色完全相同的牌。
* 2)前面的牌型比后面的牌型大,如同花顺比四条大,依次类推。
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> list = new ArrayList<>();
while (sc.hasNextLine(