阿里云-混合云一二三面面经
一面(9.15,1h):
1.讲一下实习都做了什么工作,还有实验室的项目。
2.go和java的接口有什么不同。
3.go和java在语言级别的层面有什么不同(不了解java所以直接讲go的特性了)。
4.如何快速定位程序OOM问题。
5.知道如何查看线程的cpu内存等资源使用情况吗。
6.cpp的虚函数以及实现原理。
7.cpp的构造函数可以是虚函数吗,析构函数可以是虚函数吗,分别讲一下答案以及为什么。
8.有了解过debug的时候设置断点后程序会停下来的底层原理吗。
9.如何创建子进程。
10.一致性哈希算法有了解过吗。
11.redis集群中槽指派,槽迁移问题。
12.一段英文问题要求用英文回答。(大概意思就是以前没有来过杭州,为什么会选择投阿里,不考虑留在腾讯吗)
二面(9.16,40min,p9巨佬):
二面前一天晚上收到了那封邮件差点给我劝退了,大概就是让我展示读过的代码和写过的代码。还给了一个推荐展示的源码的清单(我看了一下清单里的我一个都没读过,当时很绝望)。后来我打听了一下好像阿里很多部门都会有一面专门让候选人讲写过的项目,读过的源码。但本菜鸡之前是真的没见过这种面试。
1.fork的用法以及调用fork时底层具体发生了什么事情。
2.展示了一下自己的项目。
3.给面试官讲了一下golang map的源码(没问问题,估计是面试官写java的原因)。
4.展示了一下发表的论文以及专利(没问问题)。
三面(9.18,交叉面1h,遇到精通go的p9巨佬了):
1.介绍在腾讯实习期间做的工作。
2.go语言中协程是如何调度的(几种情况都讲一下)。
3.讲一下协程之间上下文切换和线程之间上下文切换的区别。
4.go程序在编译的时候有什么特点。
5.下面一段程序会输出什么,讲一下(这里我被怼惨了,只能说自己还是没把理论完全的应用到实践中吧,再就是平时做实验的数据量太小了)。
str := "123456" for _, c := range str { go func() { fmt.Println(c) }() }
6.写代码:按层遍历二叉树,只打印奇数层的节点的值。
7.写代码:手写一个cpp的vector类(用go写类似的也行,但是我选择的cpp)。
hr面9.24,30min。
#面经##阿里云##校招##阿里巴巴#