奇安信C++一二三面,面试体验超好

今天一天走完了奇安信的流程,虽然比较累,但是很开心,终于有一家公司走完流程了。

提前批一面(75min)

  • 自我介绍
  • 堆排序和快排的平均时间复杂度和最坏时间复杂度
  • 哈希表实现
  • 哈希表线程安全问题
  • 红黑树
  • 红黑树和哈希表的场景
  • 从内存池实现,聊到对象池、ptmalloc,还有一个比较有意思的问题:内存池分配出去的内存,怎么检测访问越界?例如调用memset的时候越界。
    • 使用hook的方法,将memset封装起来,对外提供封装版本的menset函数,内存池的内存块除了内容以外,使用起始的 4 个字节记录内存块的内容区域的大小。memset被调用的时候,会比较内存块大小和传进来得len。如果len更大,内存访问就越界,抛出异常。面试官提到这个方案的一个问题:没法检测得到p + 5的这种情况。
  • ping baidu.com的请求过程,尽可能详细地描述
  • TCP 滑动窗口的作用
  • 介绍项目,介绍到日志系统的时候,面试官提到无锁队列(多写者单读者)
  • 提问环节

一面面试官体验很好,还给我介绍了微软的工具包,里面有很多无锁队列。

提前批二面(50min)

  • strcpy会拷贝字符串最后的/0吗?
  • newmalloc的区别
  • 现有一程序崩溃了,且知道了崩溃的代码,需要通过调试,获得该行被调用了多少次之后程序才崩溃:
    • 程序运行很久才能到崩溃的地方,但是程序编译很快
    • 程序编译很久,但是很快就能运行到崩溃的地方
  • 我们有程序的源代码和编译环境,需要检查程序的内存泄漏情况:
    • 内存池
    • 类似tcmalloc的思路
    • 类似valgrind的思路
    • 对象的构造函数、析构函数中统计内存使用量
    • 面试官提示换种思路,不从系统库替代的层面考虑,通过观察任务管理器。
      • 内存泄漏在循环或者递归中,可以观察到内存突然暴增,循环或者递归结束,程序内存趋于平稳
      • 内存泄漏不在在循环或者递归中,因为我们有源代码,可以将main函数逻辑放到一个循环中(面试官提示)
  • 常见的代码缺陷
  • char c = fgetc(fp);这行代码会有什么问题?
  • 十万以内的不相等的数字,使用时间复杂度最优的方法排序(桶排序 + bitmap 优化空间)
  • 类似老鼠试毒的智力题
  • (我简历上的)项目的来源、测试性能

二面的面试体验是春招依赖最好的,面试官说了很多遍“很不错”,还跟我说:“跟你说实话,今天都没其他说过这话”,这也太直率了,赞。讨论调试内存泄漏情况的时候,还说:“不要有压力,前面回答得已经很好了,现在只是在考察思考深度,没想到也没关系”。后面从hr那了解到面试官是做代码卫士的,保证代码安全性。难怪问了调试方面的场景题和代码缺陷(这名词还是第一次在面试中被问到)。

提前批hr面(50min)

hr面比较常规:

  • 个人信息、学校情况
  • 实习内容和收获
  • 平时的学习方法
  • 兴趣爱好
  • 秋招公司、偏向
  • 提问环节

总结

奇安信的面试体验实在太好了,特别是二面的体验。这也算最近比较顺利的面试,希望能拿到offer,安慰安慰最近被虐的心灵。

关于sp

有点狂了,开始打sp的坏主意了。请教一下大家,我从hr那了解到,两面面试官对我的评价还蛮好的,尤其是二面面试官。如果能拿到offer,不知道能不能依据这个 argue sp。当然前提是要先能拿到offer。有其他offer,对于 argue sp 有帮助。

#奇安信##C++工程师##校招##面经#
全部评论
楼主很强,想问一下楼主程序崩溃那个问题,程序要编译很久运行很快应该怎么处理
点赞 回复
分享
发布于 2020-08-17 09:27
我三面平均二十分钟,,,,问得也比较简单…为什么你能那么久…这么一比较感觉我只是在走个过场似的…
点赞 回复
分享
发布于 2020-08-17 10:30
博乐游戏
校招火热招聘中
官网直投
老哥,你是今天面完的??我是15号面的三面,我面试时间平均在40分钟左右,奇安信这么快不会走个过场吧
点赞 回复
分享
发布于 2020-08-17 12:16
看来各路神仙打架啊😂
点赞 回复
分享
发布于 2020-08-17 12:23
hr面问的什么问题啊
点赞 回复
分享
发布于 2020-08-17 17:07
我怎么感觉都挺难的啊😂
点赞 回复
分享
发布于 2020-09-10 22:46
一般走完要到几点啊 下午三点前能结束吗
点赞 回复
分享
发布于 2020-09-11 19:14

相关推荐

10 79 评论
分享
牛客网
牛客企业服务