当前位置: 首页 > 面试经验 >

阿里C++一面,CTO线

优质
小牛编辑
159浏览
2023-04-25

阿里C++一面,CTO线

2023.4.24 PM 90min

  • 自我介绍
  • 面试官访问了我的github和博客
  • 你最近学了什么,介绍一下(答分布式、k8s)
  • 我们部门最近正好也在开发k8s,介绍一下k8s是什么,结构如何
  • pod是什么
  • 你觉得为什么k8s能火起来
  • 问项目:介绍一下你写的路由器程序
  • 详细介绍路由的过程,以及路由器所处运行环境(我用的VMware虚拟机模拟)
  • 多线程的使用场景,用的什么锁
  • 路由表的管理(我用的map)
  • 你的路由的过程是串行的,想想高并发场景,性能瓶颈如何优化 答:使用多线程。 这里面试官开始引导,多线程之后如何分配路由,使用缓冲区的线程安全如何保证…… 最后我还是没答上好的优化方法
  • 问c++动态多态如何实现如何找到一个虚函数
  • 答:查函数名字。
  • 问:不对,查找的复杂度是O(1)的,查函数名怎么找呢,再想想。
  • 答:通过名字哈希?
  • 问:不对,怎么哈希呢,再想想。。。 然后我狡辩了很久也没用,直接说我忘了,不是很熟。。。然后问我学过编译原理没,面试官提示说想想编译的时候怎么做。。。 后来在引导下,答出来说在编译的时候就确定了,例如给虚函数编号。。。 其实答案是通过找类的虚函数表指针,定位到虚函数表,然后根据虚函数偏移来找到这个虚函数。而这个虚函数偏移量和虚函数表的指针都是编译的时候确定的
  • 算法

面试官看到了我在前一个部门(一面挂了)的手撕算法题:实现支持括号的计算器,于是问如下

  • 括号匹配如何实现的
  • 解析并计算表达式有几种方式,编译原理中的编译器是怎么做的(答了3种,通过符号栈实现,通过分治思想解析表达式实现,通过编译原理中的语法分析树实现)

手撕算法,查找n个有序数组之间的交集

  • 问: 你先思考,讲讲思路再写。
  • 答:遍历并且二分查找(复杂度o(nlogn))
  • 问:不行,复杂度太高了
  • (快速思考中)
  • 答:使用队列数组(元素是队列的数组)存这几个集合,然后分别遍历第一个元素,看看是否为交集(复杂度o(n))
  • 问:为什么使用队列而不是vector
  • 队列性能更好。并回答为什么队列性能比vector好

手撕完成后,面试官感觉我撕的有问题,但是看了半天没找到问题所在,并且我举了几个例子,发现似乎没bug

  • 反问环节
  • c++在k8s开发中有什么用,面试官说其实并不一定c++,面试只是看能力和思维,开发大概率会用其他语言
  • 有什么改进的建议嘛

最后说再见之前,面试官问“我看你是四川人,以后打算在哪就业呢,成都吗”“最好是成都吧,其他地方也行的”“我们base在杭州,成都那边是小的分部”“杭州也挺好呀,我倒是都可以”

所以面试官这样问是不是代表一面过了呀 投了一个月了,之前每次都是一面挂,等几天出结果了来更新

总的来说面试体验非常好,没有八股文,面试官很用心,很耐心引导我回答问题,并且说其实招本科实习生并不主要看项目,重点会考察思维和在给定场景解决问题的能力

#如何判断面试是否凉了##我的实习求职记录#
 类似资料: