2021年秋招 雷火 米哈游 面经
其中雷火过了,米哈游hr面后挂了。。。
雷火
雷火面的是游戏研发工程师(服务端方向)
雷火的面试共三面,分别是一面(连续两轮)+二面主管面+hr面
一面第一轮(30min):
- 自我介绍
- 问了我c++的知识都是自学的吗?我说算本硕半个科班 + 深入自学。
- 做几个题目:
- 反问环节
一面第二轮(50min):
- 自我介绍
- c++的面向对象特性(封装、继承、多态)
- 用c语言模拟实现简单的c++中的多态
- 在堆上创建内存,malloc是怎么实现的
- 指针和引用的区别
- map和unordered_map的区别
- 如果自定义一个类型来作为unordered_map的key值,但编译器编译未通过,什么原因?
- TCP和UDP的区别,TCP中“连接”的含义
- 如果两方已经建立了TCP连接,突然中间经过的一些物理链路断开了一段时间又恢复了,这时候两方的连接是否还存在?情况比较多,这个问题想回答好需要多思考一下。
- UDP的使用场景,在UDP的基础上设计实现TCP的功能
- 简历上项目相关
- 智能指针的介绍。实现一个简单的shared_ptr
- 反问环节
二面(45min):
这里录屏设置出错了,只录到了自己的声音,没有捕获到面试官的声音,整理的就很粗糙。
- 自我介绍
- 项目相关
- 函数调用过程
- 程序中各种类型变量存储的位置
- 多态
- delete this的各种执行情况(分别在类的构造函数中,在类的析构函数中,在类的普通函数中执行会发生什么情况,当这个对象被定义在栈上、在堆上又会发生什么情况)
- 任意删除大/小顶堆中的某一个节点后,(注意不是顶点),如何调整使之恢复
- TCP、UDP相关
- 虚拟内存/物理内存/如何转换等等
- 普通函数调用/系统调用/进程线程等等
- 反问环节
米哈游
米哈游面的是游戏服务器开发。分别是一面、二面和hr面。
一面就是面试官对着题库念题目,几十个问题轮番轰炸,回答后很少有反馈。二面是直接做了三道编程题。
一面(1h20min):
- 平时玩什么游戏
- 多态的原理
- 有继承关系的父子类中,父类的析构函数需要设置为虚函数的原因
- 几种智能指针,分别如何实现的
- shared_ptr的线程安全性分析
- 关于weak_ptr和shared_ptr的关系,weak_ptr是如何实现的(源码层面)。这一块可以看我的一篇很详细的博客:面试知识点详细解读之智能指针 | LYL's Blog https://yuanlehome.github.io/DVejmy5owOXx5WKk/
- vector的内存分配方式,默认内存分配器allocator的实现
- 内存池的作用,存在的意义(内存碎片和系统调用效率)
- 在vector中删除满足指定条件的值的方式,迭代器失效的场景
- 数组和链表的区别,删除操作
- 单链表中如何O(1)删除其中一个节点
- 队列和栈的区别,底层实现
- 二叉搜索书和红黑树的区别,红黑树是如何保持平衡的
- 哈希表的作用,时空复杂度,如何解决冲突
- 有一群人,对他们的年龄进行排序,如何设计排序方案
- 进程和线程区别,在linux中的实现
- fork系统调用之后的过程,返回值
- 线程同步的方式有哪些
- 孤儿进程和僵尸进程
- linux系统上cpu的占用率达到了100%,如何排查问题
- TCP和UDP的区别,应用场景
- 以游戏为场景来分析什么时候用TCP什么时候用UDP
- IO多路复用,select和epoll的区别
- 做一个编程题,用了两种思路方法
- 反问环节
二面(50min):
直接做了三道编程题
- 二叉树的序列化和反序列化
- 三个线程交替打印A、B、C
- 最长无重复子串
- 反问环节
hr面(30min):
未完待续。。。
#秋招面经##面经##网易雷火##米哈游#