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

2023-11-08

这篇文章主要介绍了华为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的概率。
我把自己个人面试前收集的一些面试简历模版还有刷的面试题整理了一下需要的可以自行领取

简历模版:

在这里插入图片描述

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为Java社招面试经历详解【已拿到offer】 的相关文章

  • Maven 未运行 Spring Boot 测试

    我有一个要测试的 Spring Boot REST API 我可以在 Eclipse 中手动运行测试 无需 Maven 并通过将应用程序作为 JUnit 测试运行 它运行良好并显示结果 但是mvn test正如您将在下面发现的那样 它不起作
  • Mockito 匹配器和基元数组

    有了 Mockito 我想verify 方法调用byte 在它的参数列表中 但我没有找到如何写这个 myMethod byte 我只想要类似的东西anyByteArray 如何使用 Mockito 做到这一点 我会尝试any byte cl
  • Eclipse JAVA工具jar不存在

    The archive C Java jdk1 6 0 26 32 lib tools jar which is referenced by the classpath does not exist 这是我运行Tomcat时遇到的错误 清理
  • firebase android 基于类的更新不尊重字段名称的大小写

    我声明了以下类 注意大小写选择 public class User private String DisplayName private Boolean Proxy false SuppressWarnings unused public
  • 如何在Eclipse中制作war文件[重复]

    这个问题在这里已经有答案了 制作war文件的简单方法是什么 当我右键单击 在服务器上运行 时 我的项目正在运行 但我想部署在 tomcat 服务器上 我已经安装了m2clipse但这给了我一个错误 maven是否必须制作war文件 我需要特
  • 如何获取JavaFX的版本号?

    如何在运行时找出我正在使用哪个版本的 JavaFX 简单的方法之一就是简单地阅读javafx properties文件位于您的 JAVA HOME jre lib目录 我现在安装了 Java 1 7 u9 与之捆绑的 JavaFX 是 v2
  • 如何使用 Selenium WebDriver 和 Java 滚动特定的 DIV?

    WebDriver 无法识别某些 WebElement WebDriver 无法找到浏览器可见区域中不可见的元素 In order to make the WebElement viewable by WebDriver We need t
  • 无法解析 ListView 适配器中的 getSystemService 方法

    我正在研究约翰霍顿的Android 编程初学者 目前正在尝试创建一个笔记应用程序 霍顿刚刚介绍ListViews 但是 我遇到了麻烦adapter class public class NoteAdapter extends BaseAda
  • 为什么在java中加载JNI是在静态初始化程序中完成的?

    在许多使用 JNI 的示例中 我看到类似以下内容 class SampleClass static System loadLibrary somelib 这种特殊语法的目的是什么 为什么使用这个 而不仅仅是在类构造函数或类似的东西中 我想你
  • 使用 IntelliJ 调试 Java 进程 - 连接到套接字但不连接到目标 VM

    现在已解决 请参阅问题末尾 我正在尝试使用 IntelliJ Community Edition 的调试器来调试 Java 进程 套接字正在侦听 但是当我尝试连接时 调试过程显示以下内容 连接到目标虚拟机 地址 8003 传输 socket
  • Java Swing 组件的命名约定(前缀)

    在 Java 中使用 Swing 进行编程时 我想到的一个问题是 它是 Swing 组件的推荐还是 官方 最常用的命名约定 前缀 例如 尽管其他人可能更喜欢其他命名约定 但这就是我当前正在使用的 JTextField 的 txt JButt
  • 将项目导入 Eclipse 后出现“必须重写超类方法”错误

    任何时候我必须将我的项目重新导入到 Eclipse 中 如果我重新安装了 Eclipse 或者更改了项目的位置 几乎全部我的重写方法的格式不正确 导致错误 该方法必须重写超类方法 值得注意的是 无论出于何种原因 Android 项目中方法参
  • 参数列表中的“...”是什么意思? doInBackground(字符串...参数)

    我不明白那个语法 尝试用谷歌搜索各种单词加上 是没有用的 它被称为varargs http java sun com j2se 1 5 0 docs guide language varargs html 这个事实应该产生更好的谷歌结果 h
  • RecyclerView:禁用焦点变化引起的滚动

    TL DR我有一个RecyclerView of EditTexts 当用户注意力集中时EditText 1并点击EditText 2 我想EditText 2获得焦点 但我不想要ReyclerView滚动 我怎样才能实现这个目标 我正在尝
  • ElasticSearch - 定义自定义字母顺序进行排序

    我正在使用 ElasticSearch 2 4 2 通过 Java 的 HibernateSearch 5 7 1 Final 我在字符串排序方面遇到问题 我的应用程序的语言有变音符号 它们有特定的字母顺序 订购 例如 直接在之后L 追随O
  • java.lang.Object#getClass() 的 Eclipse 外部空注释

    我正在使用 Eclipse Mars 中提供的外部空注释工具 我正在尝试添加外部注释java lang Object getClass 但似乎无法正确签名 我尝试过以下变体 NonNull Class getClass L1java lan
  • 如何指示 yum 安装特定版本的 OpenJDK

    我尝试安装openjdk in the redhat服务器 如何安装指定版本 我要安装的版本是 11 0 4 使用以下命令安装的版本是11 0 6 yum install java 11 openjdk devel 曾与 yum showd
  • Java中精确的时间测量

    Java 提供了两种获取当前时间的方法 System nanoTime and System currentTimeMillis 第一个给出的结果以纳秒为单位 但实际精度比这要差得多 许多微秒 JVM 是否已经为每台特定机器提供了最佳的价值
  • 如何使用属性文件在log4j2中创建多个日志文件?

    我正在使用 property 文件在特定路径中创建日志文件 但我正在使用它创建单个文件 以下是我的属性文件代码 status error dest err name PropertiesConfig property filepath ap
  • 如何将 Hibernate 5 安装到 Apache Karaf v4 中

    我已经安装了 Apache Karaf v4 03 并查询了 Hibernate 的可用功能列表 如下所示 不幸的是 我使用的是 Hibernate v5 hibernate 3 3 2 GA Uninstalled enterprise

随机推荐

  • BarTender.Application COM 多次调用引发后台进程数不断增加的问题

    引用文章方法测试 目前未发现问题 Closing Instance Of Bartender BarTender Support Portal seagullscientific com Closing Instance Of Barten
  • angular:路由直接import xxx-route.module文件的坑

    问题 惰性加载可以直接import xxx route module 而且可能一开始始不报错 如果在html使用第三方库的组件时 在xxx module中import对应的module 报错仍然不能解决 解决办法 const routes
  • java白盒测试代码_junit白盒测试Java.doc

    计算机科学与技术系 实 验 报 告 专业名称 软件工程 课程名称 软件测试 项目名称 白盒测试之赋税管理系统 班 级 12级软件工程 学 号 1204091034 姓 名 常成 同组人员 实验日期 2014 10 13 一 实验内容 利用白
  • 基于HAL库的FREERTOS----------一.任务

    FreeROTS 就是一个免费的 RTOS 类系统 这里要注意 RTOS 不是指某一个确定的系统 而是指一类系统 比如 UCOS FreeRTOS RTX RT Thread 等这些都是 RTOS 类操作系统 FreeRTOS 是 RTOS
  • Vue中的自定义指令——全局和局部

    Vue中的自定义指令 一 注册全局指令 二 注册局部指令 通过自定义指令 我们可以对DOM进行更多的底层操作 这样不仅可以在某些场景下为我们提供解决问题的思路 而且让我们对vue的底层有了进一步的了解 一 注册全局指令 通过Vue dire
  • 怎么解决Visual Studio无法打开源文件“stdio.h“问题

    CUDA文件中无法打开源文件 stdio h 混元太极马保国的博客 CSDN博客 以上链接的解决办法最好 1 不用管它 也可以正常运行cu项目 2 按上述链接处理 项目 属性 常规 启动托管增量生成 改为 是 也可以消除波浪线 这篇文章主要
  • Java内存溢出问题深入探究及其解决策略

    文章目录 引言 一 Java内存模型与溢出的根源 1 1 Java内存模型 1 2 内存溢出的根源 二 诊断内存溢出 三 解决策略 3 1 优化代码 3 2 调整堆大小 3 3 使用内存友好的数据结构和算法 3 4 优化并发 四 代码示例
  • [非线性控制理论]8_三种鲁棒控制器的比较

    非线性控制理论 1 Lyapunov直接方法 非线性控制理论 2 不变性原理 非线性控制理论 3 基础反馈稳定控制器设计 非线性控制理论 4 反馈线性化 反步法 非线性控制理论 5 自适应控制器 Adaptive controller 非线
  • Docker高级:Compose 容器编排

    目录 一 Docker Compose 概述 二 使用 Docker Compose 三 常用命令 四 编排微服务 搭建微服务 编写Dockerfile构建镜像 启动容器 测试服务 使用Compose编排容器 五 总结 一 Docker C
  • 10个顶级的CSS UI开源框架

    随着CSS3和HTML5的流行 我们的WEB页面不仅需要更人性化的设计理念 而且需要更酷的页面特效和用户体验 作为开发者 我们需要了解一些宝贵的CSS UI开源框架资源 它们可以帮助我们更快更好地实现一些现代化的界面 包括一些移动设备的网页
  • 模式识别课程:目标检测①创建PASCAL VOC数据集

    title 目标检测 创建数据集 目标检测实验报告 检测所用软硬件 云服务器 硬件 macOS或者windows电脑 软件 pycharm 生成的测试集 云服务器 滴滴云 https www didiyun com activity htm
  • 二.信息化与系统集成技术

    项目经理考试学习笔记 二 信息化与系统集成技术 考试 6分左右 信息化5分左右 1 信息化 1 1 政府信息化与电子政务 1 2 企业资源管理 ERP 1 2 1 ERP的定义 1 2 3 ERP的思想 1 3 客户管理关系 CRM 职能
  • Git中忽略文件常见内容, git中的一些操作记录

    jar war class lock DS Store swp out target iml ipr iws bak settings classpath project metadata idea logs log dependency
  • Win10 开发者模式开启

    使用注册表方式 建立一个注册表DWORD为1键值 HKLM SOFTWARE Microsoft Windows CurrentVersion AppModelUnlock AllowAllTrustedApps建立一个注册表DWORD为1
  • 短视频、直播程序、一对一社交app--老外们玩嗨的程序竟然多半来自“中国的程序猿们开发”...

    短视频 直播程序 一对一社交app 老外们玩嗨的程序竟然多半来自 中国的程序猿们开发 在过去的2017年可以说是中国短视频 直播程序 一对一社交app极为火爆的一年 国内市场的厮杀一直没有停止过 很多投资者在国内那是一片红海 短视频 直播程
  • STM32 学习笔记 -- Keil 5调试STM32控制器,出现错误提示“Error: Encountered an improper argument”的原因参考

    最近在使用MDK调试STM32控制器 当下载完成 需要使用ST LINK进行程序仿真时 MDK偶尔会出现错误提示 Error Encountered an improper argument 大概意思是说 错误 遇到不正确的参数 出现这种情
  • 音频放大器的设计

    摘要 进入21世纪以后 各种便携式的电子设备成为了电子设备的一种重要的发展趋势 从作为通信工具的手机 到作为娱乐设备的MP3播放器 已经成为差不多人人具备的便携式电子设备 所有这些便携式的电子设备的一个共同点 就是都有音频输出 也就是都需要
  • 微信小程序模板消息发送功能实现

    前言 发送微信模板消息首先需要用户去绑定openId和serverOpenId才能推送模板消息 1 微信配置项 1 微信小程序根据前端返回的code去获取unionId和openid 通过type 0的接口去请求 2 用户获取到unionI
  • JasperSoft Studio的使用(1)——软件介绍及创建空白模板

    最近工作中需要用到报表打印 像pdf中多个table的展示 一个List在新的一页中显示列头等 JasperSoft 正好可以满足这些需求 所以记录一下 用以分享 软件介绍 JasperSoft Studio是一个面向 JasperRepo
  • 华为Java社招面试经历详解【已拿到offer】

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