华为java社招面试题目、参考答案及全部流程详解
Aaronhuangyu
华为的招聘流程一直非常复杂,本人最近参加了华为的社招,对全部流程有一个总体了解,包括流程,面试题目类型,分享给大家,希望大家能有所帮助。
首先是华为hr审核简历,看一个简历和所需职位的匹配度,基本就是看毕业学校,看掌握技能是否与所需职位吻合,然后会有一个电话沟通,这里会问你工作经历,项目经验,然后再介绍下自己的职位,问你是否有意向投递,如果明确有意向就敲定技术面的面试时间,总之,这一关很easy。
接下来华为的hr会通知负责技术的面试官联系你,这里就很重要了,我们电话聊了将近40分钟,挂断电话的我一脸疲惫,首先是自我介绍下,因为是技术面试嘛,所以介绍的主要偏项目经验这方面,所以我们先就项目的所用框架、所需技术等聊了一些,期间又问我多线程和高并发的相关知识,这个也是java绕不过去的门槛之一,然后问了我mybits和hibernate的不同点,还有spring和apache自己封装的一些方法问我用过哪些,最后问了我一个arrayList和linkendList的区别,这个也是醉了,想了一下才答上来,从其底层的结构上来答linkendList是双向的链表结构,arrayList是基于动态数组的数据结构。linkendList在执行get和set时需要移动指针,所以效率不如arrayList,但linkendList 的add 和remove的效率比较高,因为arrayList要移动数组的数据。
如果这一面双方聊的都比较好的话技术官会再给你打电话告诉你需要机试,发给你一个牛客网的答题链接在线答题,这个类似于华为校招的机试,只不过我这次社招只有一道题200分,超过100分就算过,这个机试需要注意几点,第一个是你只能命名类名为Main,不能是其他的,第二个需要注意的是可以在自己的IDE上调试,但是一定要把自己运行测试好的代码要全部copy到代码框内,包括导包的代码,下面是我的一道oj题目。
骰子有6个面,现在用1,2,3,4,5,6分别代表一个骰子的左,右,前,后,上,下的初始位置,用R代表向右滚动一次,用L代表向左滚动一次,可以向前翻转(用F表示向前翻转1次),可以向后翻转(用B表示向右翻转1次),可以逆时针旋转(用A表示逆时针旋转90度),可以顺时针旋转(用C表示逆时针旋转90度),现从初始状态开始,根据输入的动作序列,计算得到最终的状态。
输入描述:
初始状态为:123456
输入只包含LRFBAC的字母序列,最大长度为50,可重复
输出描述:输出最终状态
输入例子:RA
输出例子:436512
代码如下:
import java.util.Scanner; public class shaizi { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String [] str_array = {“1”,”2”,”3”,”4”,”5”,”6”}; String s = scan.nextLine(); String [] s1 = s.split(""); int len = s.length(); for(int i = 0 ; i< s1.length;i++) { String ss = s1[i]; rv(str_array,ss); } int t = 0; for( int i = 0; i <str_array.length;i++) { t = t*10 +Integer.valueOf(str_array[i]); } System.out.println(t); } static void rv(String [] str_array,String s) { switch(s) { case "L": change(str_array,0,5); change(str_array,1,4); change(str_array,0,1); break; case "R": change(str_array,0,4); change(str_array,1,5); change(str_array,0,1); break; case "F": change(str_array,2,5); change(str_array,3,4); change(str_array,2,3); break; case "B": change(str_array,2,4); change(str_array,3,5); change(str_array,2,3); break; case "A": change(str_array,0,2); change(str_array,1,3); change(str_array,0,1); break; case "C": change(str_array,0,3); change(str_array,1,2); change(str_array,0,1); break; default: break; } } static void change(String [] str_array,int a,int b) { String temp = str_array[a]; str_array[a] = str_array[b]; str_array[b] = temp; } }
如果OJ上机测试过了的话,hr会告诉你进行下面的面试,就是hr微信远程视频面试了,hr远程面试开始谈薪资,谈离职原因,谈职业发展,谈家庭构成,基本的定级和大概的薪酬,这些一般稍微高一点要,事先了解下华为薪酬机制哈,比如14,15,16等级的基本薪资和绩效的整体情况,月薪谈不妥可以谈年薪(ps:注意谈你之前单位薪资的时候最好真实,不要和说的差太多)。
与此同时要做个性格测试在线测试,一共104道题目,在25分钟左右做完,注意回答问题的一致性(题目中有些重复问题会测你的一致性),以及积极性,抗压能力等。
这时还有一个综合面试,一般不会卡你,基本就是定定薪资聊聊天谈谈职业发展,还会帮你做一些职业发展的规划,这时基本就大功告成,可以基本恭喜你去菊厂搬砖了(后面就是等待政审和体检了,要是这个没过,那····sorry,就爱莫能助了)。