首页 运维杂谈去华为面试的专科生,现在怎么样了?

去华为面试的专科生,现在怎么样了?

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

昨天下班前,一个老同学给我发微信,说自己去华为面试了,现在结果已出,问我的建议。
我都懵了,从来没想过专科生可以进大厂面试。他说从来没介意自己学历,找工作的时候他也发现,招聘方很多对学历要求并没有卡得很牢,他们更看重掌握的技术还有持续学习并去行动的能力。

去华为面试的专科生,现在怎么样了?插图

老同学告诉我,面试过程,先是机试,卡点交卷,题不是太难,只是平时不做题,有些生疏。然后是性格测试。他提前在网上已经大概看了一遍需要避坑的地方,把自己打造一个性格正常的人就行。接着有人给他打电话,具体介绍工作情况,问他是否理解等等。然后有视频会议,和他聊了聊,谈薪也在这块。之后还经历了独立面试,面试官问到项目经历,需要讲一讲具体流程。这个要看面试官是否有经验了,普通人问的不深,比较有经验的可能会问的多一些。
最后提到岗位签的是华为惠通,但工作对接和职级晋升都是华为的。老同学告诉我,高级员工在华为,低级员工在华为外包,也就是惠通。

去华为面试的专科生,现在怎么样了?插图1

这个我也查过,华为对外包类(含od、odc、慧通、中软、软通…)有统一的定价:一万上下,会做背调,个人薪资上调不得超过20%,即使本来就超过一万多的人,进来华为也只会给一万左右的收入(技术岗会高一点点)。
可以说, 慧通算是外包也不是外包,是全资外包而已,干的还是外包的事:不那么重要的人去做一些技术难度低的流水线一般的事。外华为是分级的14级以下大部分都是外包。如果有水平就不要去外包,如果水平一般的话,那就不要介意外包,毕竟大厂的外包确实比一些公司的薪资福利香的多。暂时先去外包干着,有合适的机会再跳槽。


提到华为,不得不分享一下它的这道高频面试题。


题目:关于CAS(乐观锁)的原理解析


CAS就是是JDK提供的非阻塞原子性操作,通过硬件保证了比较-更新操作的原子性。它的主要原理如下:
CAS有三个操作数
内存值v
旧的预期值A要修改的新值B
当多个线程尝试使用CAS同时更新一个变量的时候,只有一个能够更新成功。那就是当我们的内存值V和旧的预期值A相等的情况下,才能将内存值V修改成B!然后失败的线程不会挂起,而是被告知失败,可以继续尝试(自旋)或者什么都不做!
尝试重试
我们可以假设有两个线程,一个线程1,一个线程2,同时对我们的内存值进行自增!我们的内存值刚开始是0,旧的预期值也是0。
这个时候线程1进来了,由于我们的内存值和旧的预期值相等,所以更新我们的内存值为要修改的新值1
当线程1结束之后,线程2进来了,要对我们的内存值进行修改。但是发现我们的内存A(此时为1)和我们的旧的预期值不相等(此时为0)不相等,所以不能将内存值更新为我们的预期值(预期值为2),所以只能进行将旧的预期值更新为内存值(此时旧的预期值 == 内存值),并告知下一次再试试!
当我们的线程2重试更新内存值,此时内存值(此时为1)与我们的旧的预期值(此时为1)相等,所以可以将我们的内存值更新为我们的预期值(此时为2)。
所以,哪怕没有加锁,我们也能实现线程安全。


什么都不做
同样的,我们举例有两个线程,一个线程1,一个线程2;我们两个线程都要对内存进行更新为10。
我们假设线程1先进来,此时内存值与我们的旧的预期值都为0,所以可以更新,将我们要修改的新值10赋值给了内存值,完成了更新
当线程1完成之后,线程2进来要对我们的内存值进行修改为10,但是发现内存值与旧的预期值不相同(此时一个为10,一个为0),所以只能将旧的预期值更新为内存值,同时被告知了下次不用重试了。(因为我们的目的是将内存值更新为10,显然我们的目的已经完成了)
原子变量类简单分析
我们在开头也提到了,在我们JUC下的原子变量类也是使用CAS来保证操作的原子性。而我们的具体原子变量类有以下这些:

去华为面试的专科生,现在怎么样了?插图2
去华为面试的专科生,现在怎么样了?插图3

image-20240304231412552我们以AtomicInteger为例,找一个其中自增的方法分析一下:


//var1 是this指针
//var2 是地址偏移量
//var4 是自增的数值,是自增1还是自增N   
public final int getAndAddInt(Object var1, long var2, int var4) {
        int var5;
        do {
            //获取我们的的期望值赋值给var5
            var5 = this.getIntVolatile(var1, var2);
            //调用了Unsafe下面的另一个方法,是一个native方法
            //如果期望值var5与内存值var2相等的话,更新内存值为var5+var4,否则更新期望值为期望值为内存值
        } while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4));

        return var5;
    }

compareAndSwapInt方法是我们的调用native方法

compareAndSwapInt方法是我们的调用native方法

// 第一和第二个参数代表对象的实例以及地址,第三个参数代表期望值,第四个参数代表更新值
public final native boolean compareAndSwapObject(Object var1, long var2, Object var4, Object var5);

public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);

public final native boolean compareAndSwapLong(Object var1, long var2, long var4, long var6);

它是由我们的底层c代码调用汇编使用的,最后生成出一条CPU指令cmpxchg,完成操作。这也就为啥CAS是原子性的,因为它是一条CPU指令,不会被打断。这个指令在我们早期的硬件厂商就在芯片大量使用了,比如intel。


插播福利:
这里也给小伙伴们发一份福利,精心准备的【大厂面试题20多个技术点!】涉及
Linux、redis、k8s、Docker、golang、Jenkins、prometheus、DevOps、MongoDB、shell、dubbo、nginx、Kafka、ansible、消息队列、网络安全……一次打包全部带走。保证你在跳槽和汇报工作的时候如鱼得水。

去华为面试的专科生,现在怎么样了?插图4
去华为面试的专科生,现在怎么样了?插图5

免费领取预计24小时后关闭!速进!

去华为面试的专科生,现在怎么样了?插图6

Docker面试题:

1、什么是Docker?

2、什么是Docker镜像?

3、什么是Docker容器?

4、Docker容器有几种状态?

5、DockerFile中最常见的指定是什么?

6、DockerFile中的命令COPY和ADD命令有什么区别?

7、Docker的常用命令?

8、容器与主机之间的数据拷贝命令?

9、启动nginx容器(随机端口映射),并挂载本地文件目录到容器html的命令?

10、解释-下dockerfile的ONBUILD指令?

11、什么是docker Swarm?

12、如何在生产中监控docker?

13、Docker如何在非Linux系统中运行容器?

14、如何批量清理临时镜像文件?

15、如何查看镜像支持的环境变量?

16、本地的镜像文件都存放在哪里?

17、构建docker镜像应该遵循哪些原则?

18、容器退出后,通过docker ps命令查看不到,数据会丢失么?

19、如何停止所有正在运行的容器?

20、如何清理批量后台停止容器?

21、如何临时退出一个正在交互的容器的终端,而不终止它?

22、很多应用容器都是默认后台运行的,怎么查看他们的输出和日志信息?

23、使用docker port命令映射容器的端口时,系统报错Error:No public port ’80’published for …,是什么意思?

24、可以在一个容器中同时运行多个应用进程吗?

25、如何控制容器占用系统资源(CPU,内存)的份额?

26、仓库(Repository)、注册服务器(Registry)、注册 索引(Index)有何关系?

27、Docker的配置文件放在那里。如何修改配置?

28、如何更改docker的默认存储设置?

29、Docker于Vagrant有何不同?

30、docker与LXC(Linux Container)有何不同?

……

Nginx面试题

1、请解释—下什么是Nginx?

2、请列举Nginx的一些特性。

3、请列举Nginx和Apache 之间的不同点。

4、请解释Nginx如何处理HTTP请求。

5、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?

6、使用”反向代理服务器”的优点是什么?

7、请列举Nginx服务器的最佳用途。

8、请解释Ngjinx服务器上的Master和Worker进程分别是什么?

9、请解释你如何通过不同于80的端口开启Nginx?

10、请解释是否有可能将Nginx的错误替换为502错误、5 03

11、在Nginx中,解释如何在URL中保留双斜线

12、请解释ngx_http_upstream_module的作用是什么

13、请解释什么是C10K问题

14、请陈述stub status和sub filter指令的作用是什么

15、解释Nginx是否支持将请求压缩到上游

16、解释如何在Nginx中获得当前的时间

17、用Nginx服务器解释-s的目的是什么

18、解释如何在Nqinx服务器上添加模块

19、为什么要用Nginx?

20、为什么Nginx性能这么高?

21、Nginx怎么处理请求的?

22、什么是正向代理和反向代理?

23、使用”反向代理服务器的优点是什么?

24、Nginx的优缺点?

25、Nginx应用场景?

26、Nginx目录结构有哪些?

27、Nginx配置文件nginx.conf有哪些属性模块?

28、Nginx静态资源?

29、如何用Nginx解决前端跨域问题?

30、Nginx虚拟主机怎么配置?

……

ansible面试题

  1. 简述Ansible及其优势?
  2. 简述Ansible工作机制及其特性?
  3. 简述Ansible中如何保存敏感数据?
  4. 简述Ansible适合的场景?
  5. 简述Ansible Inventory?
  6. 简述Ansible配置文件优先级?
  7. 简述Ansible ad-hoc命令?
  8. 简述Ansible ad-hoc和playbook的区别?
  9. 简述Ansible变量?
  10. 简述Ansible如何实现任务的循环?
  11. 简述Ansible hanlder?
  12. 简述Ansible Block?
  13. 简述Ansible如何处理play错误的?
  14. 简述Ansible角色?
  15. 简述Ansible Galaxy?
  16. 简述Ansible如何控制任务的并行执行?

……

shell脚本面试题

Q:1 Shel脚本是什么、它是必需的吗?

Q:2 什么是默认登录shell,如何改变指定用户的登录shell

Q:3 可以在shell脚本中使用哪些类型的变量?

Q:4 如何将标准输出和错误输出同时重定向到同一位置?

Q:5 shell脚本中“if”语法如何嵌套?

Q:6 shell脚本中“$?”标记的用途是什么?

Q:7 在shell脚本中如何比较两个数字?

Q:8 shell脚本中break命令的作用?

Q:9 shell脚本中continue命令的作用?

Q:10 告诉我shell脚本中Case语句的语法 ?

Q:11 shell脚本中while循环语法 ?

Q:12 如何使脚本可执行 ?

Q:13“#!/bin/bash”的作用?

Q:14 shell脚本中for循环语法 ?

Q:15 如何调试shel脚本 ?

Q:16 shell脚本如何比较字符串

Q:17 Bourne shell(bash) 中有哪些特殊的变量 ?

Q:18 在shell脚本中,如何测试文件?

Q:19 在shell脚本中,如何写入注释 ?

Q:20 如何让 shel 就脚本得到来自终端的输入?

Q:21 如何取消变量或取消变量赋值 ?

Q:22 如何执行算术运算 ?

Q:23 do-while语句的基本格式 ?

Q:24 在shel脚本如何定义函数呢 ?

Q:25 获取随机字符串或数字

Q:26 定义一个颜色输出字符串函数

Q:27 批量创建用户

Q:28 检查软件包是否安装

Q:29 检查服务状态

Q:30 检查主机存活状态

……

jenkins面试题

1.jenkins是什么

2.为什么使用jenkins

3.CI/CD是什么

4.集中常见的CI工具

5.什么是Jenkins pipeline

6.为什么在jenkins中使用管道

7.什么是jenkinsfile?为什么使用jenkinsfile8.什么是Blue Ocean

9.如何在jenkins中备份和复制文件

10.jenkins的优势是什么

11.Jenkins主要整合了两个组成部分?

12.Jenkins中一些由用的插件

13、jenkins你都用了哪些插件?

14、jenkins怎么备份恢复

15、Maven是什么?Jenkins是什么?

16、Hudson 和 Jenkins 有什么区别?

17、在Jenkins中持续集成是什么?

18、为什么将Jenkins与Selenium一起使用?

19、CICD管道是什么?

20、在Jenkins中构建管道是什么?

21、Jenkins Pipeline是什么?

22、DSLJenkins是什么?

23、持续集成和部署是什么?

24、用于配置和配置的工具是什么?

25、Maven,Ant和Jenkins有什么区别?

26、Jenkins支持哪些SCM工具?

27、如何在Jenkins中计划构建?

28、为什么在Jenkins中使用管道?

29、Jenkinsfile是什么?

30、如何在Jenkins中创建多分支管道?

……

由于篇幅限制不再一一进行展示

免费领取预计24小时后关闭!速进!

去华为面试的专科生,现在怎么样了?插图7

根据提示 免费前

时效有限,前100名免费领取

本文链接:https://www.yunweipai.com/44840.html

网友评论comments

发表回复

您的电子邮箱地址不会被公开。

暂无评论

Copyright © 2012-2022 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部