字节跳动 游戏研发实习生 面经

一面(44min)

C++

  1. C++常用的stl容器
  2. vector和list的区别
  3. vector的扩容
  4. C++的多态
  5. 虚表是不是每个对象都有一份
  6. 虚函数是否能声明为 inline
  7. 构造函数能否为虚函数
  8. 智能指针shared_ptr
  9. 如果让你实现一个shared_ptr, 引用计数会使用什么类型

计算机网络

  1. 网络模型
  2. 我们现在进行的视频面试, 描述一下各网络模型各层都做了什么
  3. TCP和UDP的区别
  4. 在联机游戏中, 哪些方面使用TCP, 哪些方面使用UDP
  5. 联机游戏常见的网络同步
  6. 帧同步和状态同步的区别, 优缺点

操作系统

  1. 线程与进程
  2. 游戏一般有哪些线程
  3. 进程的内存空间
  4. 虚拟地址和物理地址

项目相关

  1. 有没有了解NavMesh是如何生成网格的
  2. A*算法
  3. 有没有了解过UE中事件驱动的行为树
  4. 你认为项目中哪个方面做的比较好

其他

  1. 最近有没有看什么书籍, 学习了什么
  2. 玩什么游戏

反问

二面(61min)

C++

  1. C++单继承的对象模型, 多继承呢?
  2. 介绍一下移动构造函数
  3. 介绍一下右值引用
  4. 可执行程序的编译过程
  5. 链接过程的重定向做了什么
  6. 动态链接和静态链接
  7. 可执行文件的结构可执行文件的结构
  8. 进程的内存空间
  9. 堆和栈空间的区别
  10. 移动栈顶指针的系统调用是什么
  11. 两个进程同时操作一个数据可能会发生什么
  12. C++的智能指针有几种, 分别有什么作用
  13. C++有几种类型转换cast, 分别有什么作用

数据结构

  1. vector和list有什么区别
  2. 空间局部性原理
  3. 堆的数据结构完全二叉树
  4. 描述一下堆排序, 它的时间复杂度是多少
  5. map和unordered_map的区别
  6. 哈希表的实现原理

计算机网络

  1. 网络模型
  2. 传输层有什么协议
  3. TCP为什么连接时要进行三次握手
  4. 介绍一下read和recv系统调用
  5. IO多路复用

操作系统

  1. 进程和线程
  2. 线程的调度算法
  3. 进程有哪些状态, 这些状态是怎么转换
  4. 什么情况下线程不会进入Ready状态

linux

  1. 有没有接触过linux
  2. 了解linux内核吗
  3. 知道linux的vfs(虚拟文件系统)吗

python

  1. pythonGC的作用, 介绍一下python的GC
  2. python是如何实现动态类型的

算法题

  1. 给定一个完全二叉树, 判断其结点数量与k的关系(大于/小于) 要求: 时间复杂度 O(log(n))

解: 将结点依次编号, 当前结点(假设编号为m)的父节点的编号可以算出为(m/2) 假如这颗完全二叉树有k个结点, 那么k/2可以得出父节点的编号. 再不断除2直到根节点. 此时得到了一条从根节点通往第k个结点的路径, 从根节点沿着该路径寻找. 如果找到编号为k的结点说明树的结点数量大于等于k, 如果没有找到编号为k的结点说明结点数量小于k

项目

  1. 行为树

反问

二面凉

这种 游戏研发 的岗位一般都是不分客户端和服务端的,计网相关的内容会比较深入。二面的时候比较深入的计网内容和linux内容都不会,python也了解的不是很深。

#牛客AI配图神器#

#面经##游戏客户端##暑期实习##游戏研发实习##字节跳动#
全部评论
实习生都这么难啊
点赞 回复 分享
发布于 03-25 14:31 上海
狠狠地添加了
点赞 回复 分享
发布于 03-29 12:13 福建

相关推荐

评论
9
47
分享

创作者周榜

更多
牛客网
牛客企业服务