华为面经(回馈牛客)
一面
1、自我介绍
2、Java是解释性语言还是编译性的?
- 我上来就说错成编译性的了,还说JavaScript是解释性,没想到错了。还强行解释Java需要编译后转为字节码加载进JVM,大家可以再看看解释性和编译性的区别。
3、对我的专业表示质疑,觉得我是机电院为什么做软件?
- 我说我们课题组的方向其实主要还是和计算机相关的(离散事件系统petri网),在其他学校其实都是在计算机院
4、那相关操作系统、网络的知识你知道哪些?(我说具体一点,我可以说一下,内存管理的知识)
- 首先说明了为什么会有虚拟内存,CPU中的虚拟地址到物理地址转换的访问模块MMU,另外是进程缺页之后的页面置换算法,最久未使用(LRU),最近未使用(NRU)、先进先出(FIFO)、第二次机会法(FIFO改进)、时钟法(第二次机会改进)
5、手撕代码:Leecode15、三数之和(这题非常幸运正好在我的难题集上,有兴趣可以看看我总结的几道题,可查漏补缺,)
- 写完不算完,因为要求O(n^2^),他质疑我的内层循环超过了O(n)复杂度,我解释了半天,最后用最坏情况说服了面试官。
6、手撕代码衍生题1:因为我在代码中的循环就已经有去重,他说那如果没有这些操作,直接将重复的也放进List<List<Integer>>
中,怎么直接通过List去重?
- 我说我可以将每个
List<Integer>
转化为字符串,然后放入HashSet中去重(显然这不是他想要的最优解)
7、手撕代码衍生题2:如果直接放入Set<List<Integer>>
能不能直接去重?
- 我说不行,因为这样存入的是地址,即使
List<Integer>
内容一样地址不同哈希值也是不同的,因为默认的哈希值是通过地址计算的。 - 不过最后在面试官的引导下,说出了他想要的通过重写hashCode还要重写equals方法(这里我说错为hash函数)。
8、你的项目是通过Docker部署的,那Dokerfile中ENTRYPOINT 指令的作用是什么?
- 我说这个我部署没遇到过,不太会
9、那你有熟悉的Shell指令吗说几个
- 我就说了常用的top、netstat、vim、chomd等。
10、有了解哪些云计算相关的知识
- 简单说了下IaaS、SaaS、PaaS,其他也不太会
11、最后点评:说作为非科班语言学的还不错,但是操作系统这块还是差太多要补
二面
1、自我介绍完直接撕代码:Leecode300:最长上升子序列,复杂度O(n^2^)
- 这道题我是用双指针,更新temp值,记录全局最长序列长度的方式做的,其实和dp数组的动态规划差不多。
- 不过写完我基本和他讨论如何降低复杂度,但是我还是不知道怎么搞。他说没事已经达到要求了,不过应该是可以通过(二分查找降低复杂度到O(nlogn),感兴趣的同学可以研究下)
2、说一下进程和线程的区别,进程和线程之间都是怎么通信的?
- 我说了下进程是资源分配基本单位、线程是CPU调度的基本单位。进程是分时片执行的,线程在多核情况下能并行执行,单核情况下只能通过切换达到伪并行。进程是通过管道通信,线程可以通过共享内存进行通信。
3、说一下OSI模型分层和TCP三次握手的过程及原因
- 这个我和大家一样就不多说了
4、类加载和双亲委派
5、本来是要结束的,我觉得这么短,我求生欲满满的说我以为还能讲下我主要的项目, 面试官竟然直接同意让我讲,从项目背景,和我主要工作大概又进行了20多分钟,非常感谢这位面试官能耐心听我讲完。
三面
1、自我介绍(非常巧这次的面试官也是西电的)
2、同样是质疑说是原来是机电院,我又解释一通?
3、让我介绍了下商城后台管理项目?
4、为什么选择这个项目、这个是和课题组有关还是自学?
- 我说这个是为我系统学习Java做的学习项目,选择它主要是因为它虽然简单但是涵盖的知识量比较全面
5、这个项目最一开始你主要考虑的什么?
- 这个回答是意料之外的,我以为是在问高并发啥的,我最后还是拐回到我还是主要是考虑如何把它搭建起来,通过视频书慢慢将系统搭建起来。
6、你觉得从项目中获得了什么?
- 我说提升我对开发的理解,从项目系统化的理解到各个模块间的解耦都有提升。另外了解到注释和文档对代码的重要性,这些资料对你后续复盘再看项目有很大的帮助。
7、那你说说你的第一个项目(这个是我的主要工作,本来面试官是不感兴趣的,最后具体因为什么聊到我就忘了)
- 我就和他聊了下项目背景啊开始时间等等,大概持续十分钟
8、最后他想问有没有团队合作的项目?
- 因为我研究生的项目要不单干、要不基本继承师兄,很少合作,不过我也说了项目进行中老师同学对我开展工作的帮助。
- 最后我就说电子设计竞赛是三人的,我把我们的比赛过程中的坎坷经历给他说了,他听着感觉像在听故事。
9、怎么评价华为?
- 我说了危机意识、狼性文化和开放多元,加了自己之前看的例子和理解。
10、有什么想问我的?
- 我问了下这里的新人是怎么培养的
最后令人受宠若惊的是面试官起身主动握了我的手说谢谢,我也连忙回应非常感谢您,很高兴能聊这么久(*^▽^*)