华为Java社招面试经历详解【已拿到offer】

article/2025/9/21 1:30:39

这篇文章主要介绍了华为Java社招面试经历,详细记录了华为java面试的流程、相关面试题与参考答案,需要的朋友可以参考下。
看看自己能答对多少,如果能回答70%的题目,就大胆去阿里以及各互联网公司试试身手吧。本篇建议大家收藏、备用~

华为Java社招面试(已拿到offer)

之前月底华为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()) {String s = sc.nextLine();list.add(s);if (list.size() == 5) {int type = getCardType(list);System.out.println(type);list.clear();}}}private static int getCardType(ArrayList<String> list) {int size = list.size();ArrayList<String> numList = new ArrayList<>();HashSet<String> numSet = new HashSet<>();ArrayList<String> colorLsit = new ArrayList<>();HashSet<String> colorSet = new HashSet<>();for (int i = 0; i < list.size(); i++) {String num = list.get(i).split(" ")[0];String color = list.get(i).split(" ")[1];if (num.equals("J")) {numList.add("11");numSet.add("11");} else if (num.equals("Q")) {numList.add("12");numSet.add("12");} else if (num.equals("K")) {numList.add("13");numSet.add("13");} else if (num.equals("A")) {numList.add("14");numSet.add("14");} else {numList.add(num);numSet.add(num);}colorLsit.add(color);colorSet.add(color);}int temp = 7;//同花顺或者同花if (colorSet.size() == 1) {Collections.sort(numList);for (int i = 0; i < numList.size() - 1; i++) {if (Integer.parseInt(numList.get(i + 1)) - 1 == Integer.parseInt(numList.get(i))) {if (i == numList.size() - 2) {temp = 1;}continue;} else {if (temp > 4) {temp = 4;}}}}//四条或葫芦if (numSet.size() == 2) {Collections.sort(numList);if (numList.get(0) != numList.get(1) || numList.get(numList.size() - 1) != numList.get(numList.size() - 2)) {if (temp > 2) {temp = 2;}} else {if (temp > 3) {temp = 3;}}}//三条if (numSet.size() == 3) {if (temp > 6) {temp = 6;}}//顺子if (colorSet.size() > 1) {Collections.sort(numList);for (int i = 0; i < numList.size() - 1; i++) {if (Integer.parseInt(numList.get(i + 1)) - 1 == Integer.parseInt(numList.get(i))) {if (i == numList.size() - 2) {temp = 5;}continue;} else {break;}}}return temp;}
}

下面是我从其他朋友笔试中搜集到的,希望有帮助

题目一

package com.hw.loy;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;/*** 给定一个正整数,给出消除重复数字以后最大的整数* 输入描述:* 正整数,注意考虑长整数* 输出描述:* 消除重复数字以后的最大整数* 示例1* 输入* 423234* 输出* 432*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String sc = scanner.next();List list = new ArrayList();for (int i = 0; i < sc.length(); i++) {list.add(sc.charAt(i));}for (int i = 0; i < list.size(); i++) {for (int j = 0; j < i; j++) {if (list.get(i).equals(list.get(j))) {if (Integer.valueOf(list.get(j + 1).toString()) > Integer.valueOf(list.get(j).toString())) {list.remove(j);i--;break;} else {list.remove(i);i--;break;}}}}for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i));}System.out.println();}}

题目二

package com.hw.tiku;import java.util.Scanner;/*** 骰子有6个面,现在用1,2,3,4,5,6分别代表一个骰子的左,右,前,后,上,下的初始位置,* 用R代表向右滚动一次,用L代表向左滚动一次,可以向前翻转(用F表示向前翻转1次),* 可以向后翻转(用B表示向右翻转1次),可以逆时针旋转(用A表示逆时针旋转90度),* 可以顺时针旋转(用C表示逆时针旋转90度),现从初始状态开始,根据输入的动作序列,计算得到最终的状态。输入描述:初始状态为:123456输入只包含LRFBAC的字母序列,最大长度为50,可重复输出描述:输出最终状态输入例子:RA输出例子:436512* @author loy* @desc* @date 2018/8/29*/
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;}
}

7.定薪定级

机试过后华为人力资源会对你之前的表现和你提供的薪资包,给你定你的职级和薪资,之后会按照这个职级和薪资以及你提供的材料提交上报,等待领导确认,期间快的话2周,慢的话网上有的也有一个月甚至更久的,所以中途要耐心等待,先别急着辞职,因为华为的入职流程同样很久,需要先预约东莞的医院体检,和报道日期等。

8.offer发放

本人差不多等了也有一个月左右,中途因为职级和薪资定的略高了一些,被驳回过一次,后面又重新定了一次级上报后才成功拿到offer,华为的薪资主要分为两部分,当月薪资 = 基本工资+绩效工资,试用期都是6个月,貌似不打折,年终奖嘛,这个是动态的,需要看部门效益和个人来年的考核评定,评级为A为四个月,当然这个是相当难的,几乎不太可能,评级为B是两个月,多数情况是B,C的话不用我说了吧,三年内没有nzj,不能涨工资,参与定级。。
在这里插入图片描述
华为是个非常伟大的公司,但也相当压抑,像一座围城,里面的人想着出来,外面的人拼了命往里冲,正因为其加班文化,432薪酬规则,致使它成为行业领先,不论你是否认同其企业文化,最终它一定能给到你想要的回报。

注意:华为目前研发体系都搬去东莞松山湖华为基地,环境相当不错,深圳居住的话,早晚也有接驳车。
建议大家在参加任何一家公司的面试之前,都要多花时间温故而知新,准备充分,这样在面试过程中会从容很多,也能提高拿到offer的概率。
我把自己个人面试前收集的一些面试简历模版还有刷的面试题整理了一下需要的可以自行领取

简历模版:

在这里插入图片描述

各大互联网公司近几年面试题与答案

在这里插入图片描述
需要简历模版与面试题资料可以点赞留言


http://chatgpt.dhexx.cn/article/cuFomhPn.shtml

相关文章

js对象字符串

1. 基本包装类型 基本包装类型就是把简单数据类型包装成为复杂数据类型&#xff0c;这样基本数据类型就有了属性和方法。 var str andy; console.log(str.length); //代码之所以能执行&#xff0c;是因为js会把基本数据类型包装为复杂数据类型&#xff0c;过程如下&#xff…

JS对象简介

JS对象含义&#xff1a;拥有属性和方法的数据 对象种类&#xff1a;Array,Boolean,Date,Math,Number,String,RegExp,全局属性和函数&#xff1b; 方法&#xff1a;toString 把布尔值转为字符串&#xff0c;并返回结果&#xff0c;对所有对象都具备 创建对象&#xff1a; var…

js对象继承

继承是面向对象编程中讨论最多的话题。很多面向对象语言都支持两种继承&#xff1a;接口继承和实现继承。前者只继承方法签名&#xff0c;后者继承实际的方法。接口继承在 ECMAScript 中是不可能的&#xff0c;因为函数没有签名。实现继承是 ECMAScript 唯一支持的继承方式&…

JS对象与jQuery对象

JS对象大致可以分为三种&#xff0c;如下图&#xff1a; JS常用内置对象&#xff08;JS自身所持有的对象&#xff0c;不需要创建&#xff0c;直接可用&#xff09;&#xff1a; String&#xff1a;API跟java的字符串API大致相同 两种创建对象的方式&#xff1a;String s1 &q…

前端之JS对象

前端之JS对象 1.对象基础对象的定义子命名空间访问内容用点表示法 和 括号表示法 设置对象成员更新数据创建新成员 "this"的含义document 对象 2.面向对象的程序&#xff08;OOP&#xff09;类继承多态构建函数和对象构建函数的规范写法 真正的构造函数创建对象的其他…

js对象基本知识

一&#xff1a;对象的声明与调用 方法1&#xff1a;利用对象字面量创建对象 var obj{}; 创建了一个空对象 属性和值之间用: 结尾用, :后面跟了一个匿名函数 var obj{name:"李旭亮",sex:"男",age:22,sayHi:function(){console.log(hello!);}}使用对象 调用…

JS 对象

一、对象 1、对象概念 对象&#xff08;object&#xff09;&#xff1a;JavaScript里的一种数据类型可以理解为是一种无序的数据集合用来描述某个事物&#xff0c;例如描述一个人  人有姓名、年龄、性别等信息、还有吃饭睡觉打代码等功能  如果用多个变量保存则比较散&am…

JS对象中常见的操作方法

本文内容&#xff1a; 介绍对象的两种类型创建对象并添加属性访问对象属性删除对象属性作为函数参数枚举对象的属性数据类型检测Object常用的API 一、JavaScript对象有两种类型 Native&#xff1a;在ECMAScript标准中定义和描述&#xff0c;包括JavaScript内置对象&#xff08;…

JS对象详解

JS对象详解 js的对象是什么&#xff1f;js的对象类型有哪些&#xff1f;具体实例是什么&#xff1f; 一、ECMA-262对JS对象的定义&#xff1a; 属性的无序集合&#xff0c;每个属性存放一个原始值、对象或函数&#xff1b; 对象是无特定顺序的值的数组&#xff1b; 对象是一…

初学JavaScript:js中的对象(对象+原型对象)

文章目录 js对象详解1、创建对象字面量模式创建对象构造函数模式创建对象 2、访问对象访问属性访问方法 3、遍历对象中的属性和属性值4、往对象中新添属性5、删除对象中的属性6、Object显示类型转换(强制类型转换)7、检查属性所属对象7.1 in7.2 Object.prototype.hasOwnPropert…

java testng_java—TestNG单元测试框架

//依赖坐标 org.testng testng 6.14.3 test TestNG的常用注解 1、Test 标记为测试方法 2、 BeforeMethod/AfterMethod 在某个测试方法(method)执行之前/结束之后 3、BeforeClass/AfterClass 在某个测试类(class)所有开始之前/结束之后 4、BeforeTest/AfterTest 在某个测试(test…

TestNG教程三:TestNG中的监听

TestNG中的监听 1.使用监听的目的&#xff1a; Testng虽然提供了不少强大的功能和灵活的选项&#xff0c;但不能解决所有的问题&#xff0c;使用监听器就是用来定制额外的功能以满足我们的需求的&#xff1b; 2.监听器具体实现&#xff1a; 监听器实际上是一些预定义的java接…

TestNG教程二:testNG常用测试类型

1.异常测试 package com.testngdemo; import org.testng.annotations.Test; public class test { Test(expectedExceptions ArithmeticException.class ) public void divisionWithException() { int i 1 / 0; System.out.println("After division the value of i is…

TestNg学习

TestNG是一个测试框架&#xff0c;可以简化广泛的测试需求。 建立工程 首先我们在idea中应该新建一个project&#xff0c;并选择“maven”&#xff0c;点击下一步&#xff08;如下图&#xff09; 填写groupId&#xff08;一般为包名&#xff09;和ArtifactId&#xff08;一般…

TestNG教程一:testNG简介

1.TestNG是什么? TestNG是一个测试框架&#xff0c;其灵感来自JUnit和NUnit&#xff0c;但引入了一些新的功能&#xff0c;使其功能更强大&#xff0c;使用更方便。 TestNG是一个开源自动化测试框架;TestNG表示下一代(Next Generation的首字母)。 TestNG类似于JUnit(特别是JU…

TestNG用法

【bak】https://www.cnblogs.com/uncleyong/p/15855473.html TestNG简介 单元测试框架&#xff0c;可以用来设计用例的执行流程 创建maven项目&#xff0c;添加依赖 <dependency><groupId>org.testng</groupId><artifactId>testng</artifactId>&…

testNG - 无法访问org.testng.Assert

【异常】无法访问org.testng.Assert 问题表现问题排查问题解决 问题表现 问题排查 报错的是无法访问Assert类&#xff0c;我琢磨着这个类是testNG中很常用的一个类&#xff0c;怎么会找不到&#xff1f; 先从项目的jar包中管理入手&#xff0c;看看有没有其他毛病。 果不其然…

TestNG-学习笔记

https://testng.org/doc/documentation-main.html TestNG概述 TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as: Annotations. Run your tests in arbitrar…

TestNG的使用

testng在maven项目中的使用 pom.xml <dependencies><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>7.4.0</version><scope>test</scope></dependency> </depend…

TestNG

1 TestNG简介 TestNG是Java中的一个测试框架&#xff0c;是一个目前很流行实用的单元测试框架&#xff0c;有完善的用例管理模块&#xff0c;配合Maven能够很方便管理依赖第三方插件。 TestNG消除了大部分的旧框架的限制&#xff0c;使开发人员能够编写更加灵活和强大的测试。…