2022 华为云 BU 校招 Java 后端开发秋招
华为云 BU 校招 Java 后端开发,一面、二面面经
不知道是个例还是整个华为,至少我面的这个部门给我的面试体验相当好,面试官会当场给我比较积极的反馈,面试结束后 5 分钟内就发短信通知通过。美中不足的是笔试后面还有很长很罗嗦的性格心理测评题,个人说实话比较反感这类测评以及行测题,但总之瑕不掩瑜。
一面
二面
自我介绍,聊了聊非科班毕业后的一些不相干的工作经历,坦陈自己缺乏项目经验,于是面试官后面就问了些八股文。运气还不错,面试官的引导技巧也很在线,卡壳的地方也能引导我回答出来。
Java基础
- 了解 Java 哪些数据结构?
- 说说 HashMap 实现吧?
- 了解一致性 Hash 吗?
- 线程同步有什么需要注意的地方?
设置锁,限制对资源的争夺。(多线程这块了解不多) - 对 Java 的锁有什么认识吗?
回答面试官对 Java 当中多线程不熟,锁的具体实现不了解,但是粗略了解一些操作系统涉及的锁的抽象原理,于是面试官让我从抽象的角度介绍锁。
回答锁其实就是对某一种资源(某个对象、某个代码块)的分配限制,如果资源能分配若干份,锁就表现为信号量,如果资源是唯一的,锁就表现为二元互斥量。竞争中获得锁的线程可以成功获得对应资源进入下一步执行,而没能获得锁的线程通常会阻塞于同步队列中等待下次分配。 - 什么是乐观锁、悲观锁?
- 自旋锁了解吗?
- 你对 JVM 比较了解,说说 Java 什么内存区域是线程共享的,什么又是私有的?
- 如果写了一个方法,里面有一些 private 修饰的变量,这些字段可能存在内存中什么区域?
没回答好,说了基本数据类型应该放在栈里(但不确定),对象(类的实例)放在堆里。在面试官的引导下回答出来。 - 栈里还有什么东西?
有点懵,前面说过了栈里主要放了局部变量表,其他我也想不起来。面试官提示说栈里有栈帧,我黑人问号。。。赶忙抢答,栈帧对应了线程的方法执行巴拉巴拉,调用方法对应压入栈帧、方法返回对应弹出栈帧。 - 说到 JVM 就不得不提 GC,你对 GC 有哪些认识呢?
这个问题被虾皮面试官问倒一次,圣斗士不可能在同一条阴沟里翻船第二次,详见这篇面经总结 Java 基础知识、JVM、Java多线程 里面我对 GC 理解的总结。反正我答完以后当场征服面试官,表示这个回答很棒,很系统。
数据库
- 数据库有哪些事务的并发隔离级别?MySQL 的默认隔离级别?
- 数据库索引的组织形式,聚簇和非聚簇的区别。
- 索引是越多越好吗?
- Redis 的跳表了解吗?
- 跳表各节点的数据项存在哪里?
算法题
单向链表的倒数第 n 个节点,本地 IDE 共享屏幕作答。链表类的题不方便现场调试,简单写完核心逻辑(快、慢指针)、讲解完思路就过关了。
反问、闲聊
略。
终面
终面虽然是部门大主管面的,但是不涉及技术问题,因此也没什么好分享了,大家尽量展现出自己自信积极的一面应该就问题不大。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.