华为现场面-Java
前言
诶妈,写个面经费老劲了也好累,怎么感觉最近一直都在写。
9.18 做完华为的笔试之后,记得是除了最后一道过了 70% 之外,其余都是 100%。然后果不其然前两天收到邀约沈阳现场面试,约在 9.26。
面试地点在东北大学旁边,上午大概 10:30 和室友从学校打车去东北大学的国际交流中心酒店,坐了大概 30min 车才总算到了那个酒店。前段时间来过一次这个大学的这个酒店,在和华为相同的地方面试海康威视,走完全部流程之后反手把我挂了。
由于室友上午就安排了面试,于是到场就直接安排面试了。身份证签到,面试过程播报全程短信通知,第一次收到这种待遇。
室友大概 11:30 进行一面。而我是下午面试的,所以就待在把我挂过一次的海康威视的厅里。海康威视用这个厅做面试厅,人家华为把这个厅用来做面试等候区。
等了半个小时,12:00 了,从后面传来一声“没有吃午饭的可以来这里拿汉堡和鸡肉卷”,啥也不管就是起身去拿了一个香辣鸡腿堡,KFC 家的汉堡味道还行,重点是!!!免!费!的!要是不够还能再拿!!吃完汉堡,旁边的一堆零食也不怎么吃得下了,旁边的一盘盘水果也黯然失色了。果然华为还是有点小钱呀,水果零食全部自助还是挺给力的(应该是向酒店买的吧),反正吃就 vans。
终于等到了我面试的时间,下午 2:30。2:15 签到,签到完两分钟短信提醒我去另一个会场进行面试。
那个会场的规模真是“锣鼓喧天 鞭炮齐鸣 红旗招展 人山人海”啊,目测现场有可能 200+ 个面试官和桌子并行面试,而我是 147 号面试官。
一面
开头
自我介绍 balabala。
说说你的项目(问的时间挺长)。
Redis
(结合项目问的)
你是怎么实现并发的。
你怎么加锁的。
并发的时候会有什么问题。
你这样是原子性的么。
(反正这部分项目我就是乱写的,结果刨根问底,无地自容)
Java
Java 中 == 和 equals 的用法。
HashMap 的底层讲一下。
HashMap 什么情况转化为红黑树。
讲讲红黑树(还好没有手撕哈哈哈,不然必然劝退)。
讲讲 Spring 的 AOP。
算法
讲讲你笔试第一道的思路。(就是那个合法性的题目,奇偶交错/首尾都是奇中间偶/首尾都是偶中间奇)。
手撕:一个类似大学先修课的先修问题的算法。要求先输出被依赖的课,再输出当前的课。比如 A 依赖课程 [B, C, D](简写作 A → [B, C, D]),B → [C, D],C → [ ],D → [ ]。应该输出 C, D, B, A。
口述:不定时输入一个数字(一般在 1s 左右)。求最新的 10s 内这些数字的平均值。
其他
你有什么问我的么。
请去等候区等候。
二面
(起立,和我握手,瞬间慌了)
Java
int 的这种基本数据类型和对象有什么区别。(第一次被问这个问题,没说上来,要从 JVM 的分配内存上说,面试官自己回答了这个问题)。
JVM 的内存的垃圾回收机制你知道哪些。
垃圾收集器有哪些。
CMS 和 G1 的区别。
JVM 参数你调过哪些。
怎么打印线程的堆栈信息。
ArrayList 和 LinkedList 的区别。
线程 & 并发
怎么创建线程。
知道有哪些线程池。
线程和进程的区别。
进程和线程在内存上的区别。
多线程和多进程是否都可利用多核 CPU。(面试官好像又解释了,我以前学的时候进程内多线程只能用单核 CPU,现在好像改进了,都可以用多核了)。
网络 && 传输
你用 Java 写过 socket 编程么。
Java 在网络传输的时候是大端还是小端。
可以有哪些写文件的方式。
BufferWriter 和 OutputStream 的区别。
缓冲区你一般开多大,为什么。
数据库
你了解数据库吧。
写一道 SQL。学生成绩的 SQL。表A{id, name},表B{id, course, score}。求每名学生的 id 和 name 和平均成绩。(我竟然没写对,GG)。
算法
最后一道笔试题看你提交了很多次啊,为什么。(我就说我在凑测试用例。在主管面的时候我才知道我提交了 100 多次哈哈哈啊哈)。
手撕:m * n 矩阵,从左上到右下的路径有多少种。只能往左或者往下走。
其他
你有什么问我的么。
去等候区等候。
(再次起立,和我握手,又慌了)
主管面
自我介绍 balabala。
什么是 MapReduce。
Hadoop 和 Oracle 有什么区别。
什么是分布式。(说完之后,说,你应该没怎么看一些论文吧。我:emmm)
我看看你的笔试啊,为什么最后一题你交了 100 多次?(为什么 100 多次?就是那个 Redis 的一致性哈希的题目,我字符串的 hash 算不对,发现测试用例就十个,正常思维做出 40%,凑测试用例凑了好久又过了 30% 哈哈哈哈哈)。
看你地点意向是“北上广深杭”啊,那就是哪里都行呗,我们是全世界都有的(跟我解释)。
你是我这里第一个本科生诶,前面大概 6 个都是研究生,为什么不去读研。
你经历的最失败的事是什么,为什么会失败,你有什么原因。
十天内会出结果的。
最后
我面完主管后,回到等候区,发现零食和水果还剩下好多,就抓了一个面包和零食,旁边的管理秩序的小姐姐顿时笑了。为什么呢,因为这篇面经写得太好了 https://www.nowcoder.com/discuss/226889,所以我借鉴了。当时就是因为没看这篇面经导致我浦发面试的时候很亏。还有就是,我本来是下午的面试,听说中午发汉堡,就上午来了,哈哈哈哈哈嗝。
我觉得我面试发挥的不是很好,不过我和我室友都走完了全部的流程,我估计过一些日子说不定就凉了呢。
还有就是,我面试的每场的时间自己从短信里面算。时间一般是接到邀请短信到恭喜通过前五分钟。
下面奉上我的 KFC 的辣堡和我的短信。