字节朝夕光年-游戏客户端开发实习-一二三面面经

我用过 UnityUE4,其中对UE4相对更了解一些。熟悉的语言是 C++

一面

先做自我介绍,之后依次问了C++、操作系统、网络、游戏引擎相关基础问题。
最后做了一道数学题和一道编程题。

C++:

  1. 虚函数。
  2. 构造函数和析构函数是否可以是虚函数。
  3. 纯虚函数。
  4. vptr。
  5. 用过哪些模板类。
  6. 这些模板类的迭代器有什么区别。
  7. 右值引用及其使用场景。
  8. 智能指针有哪些,分别介绍一下。
  9. weak_ptr的应用场景。
  10. 智能指针的计数器是放在哪的。
  11. 用make_shared创建对象和直接定义shared_ptr有什么区别。
  12. 默认拷贝构造函数的原理。
  13. 什么情况需要自定义拷贝构造函数。
  14. 由于13没答出来,面试官提示说如果成员变量中有指针,调用默认拷贝构造函数会产生什么问题。

C#:

  1. 引用变量和值变量。
  2. 装箱和拆箱。
面试官发现了我不擅长C#,于是进入了下一part。

操作系统:

  1. 进程的状态。
  2. 中断有哪些。
  3. 内核态和用户态。
  4. 内核态拥有哪些用户态没有的权限。

网络:

  1. TCP与UDP。
  2. TCP的拥塞控制机制。

UE4:

  1. 你的项目中实现拾枪、换弹时是怎么实现动画切换的。
  2. 动画蓝图状态机。

数学题:

  1. 怎么计算空间中的两条异面直线间的距离。

手撕代码:

  1. LeetCode 239 滑动窗口最大值(https://leetcode-cn.com/problems/sliding-window-maximum/)。用单调队列,复杂度O(n)。

一面结束后的第三天接到电话约了二面。

二面

仍然是先进行自我介绍。这次和一面不同,都是开放题。面试官会抛出一个问题让你考虑,然后再根据你的回答提出进一步的问题。
话题主要是以下四个:
  1. 如何设计实现UDP的可靠化。
  2. new的底层实现,堆内存的空间分配和碎片管理。
  3. 给一个数组,如何公平且随机地对其重新排列。
  4. 手撕代码。给n件商品的价格(每个商品只有一件),和一个价格阈值m,找到使购买价格大于m且最小的购买方案。
最后是反问环节。结束。

二面结束后二十分钟就接到电话约了三面,效率极高。

三面

自我介绍后,先是问了一些项目的具体细节,然后开始编程和问答。
  1. 实现一个进程安全的智能指针类。(忘了mutex的用法,所以没有实现进程安全)
  2. 对一个结构复杂的模型,如何实现碰撞检测。(没答上来)
  3. 如何实现一个俄罗斯方块游戏。
最后,面试官问了一些轻松的问题。比如平时看什么书,平时学习技术的途径。
反问。
三面比较时间比较短,只面了半个多小时。自我感觉答得不太好,但还是希望能过。

三面结束后的第二天收到消息约了HR面。

HR面已过。
#实习##面经##游戏客户端开发工程师##字节跳动#
全部评论
请问你多久收到二面通知的
2 回复 分享
发布于 2021-03-16 20:13
老哥又是你,感觉你遇到的题都好正经啊慕了
点赞 回复 分享
发布于 2021-03-16 23:34
楼主有做笔试题吗
点赞 回复 分享
发布于 2021-03-18 12:15
周日一面,现在周一晚上了,😭,没消息好紧张
点赞 回复 分享
发布于 2021-03-29 19:15
Up最后上岸了嘛,说不定我们能碰见哈哈。我318拿的同岗位的offer0.0
点赞 回复 分享
发布于 2021-03-31 12:35
楼主base哪里
点赞 回复 分享
发布于 2021-05-13 15:08
这二面的算法咋写啊,感觉像背包又感觉背包没用呢
点赞 回复 分享
发布于 2022-07-13 14:18

相关推荐

11-20 21:15
南昌大学 C++
今天开始回溯算法部分的刷题了,由于回溯算法的思路比较固定,主要要注意的是不同的题处理部分的逻辑不一样。完成了77、206、17三道题void backtracking(参数) {    if (终止条件) {        存放结果;        return;    }    for (遍历本层集合中的元素,有时可进行剪枝操作) {        处理节点;        backtracking(路径,选择列表); // 递归        回溯,撤销处理结果;//注意回溯的不仅是暂存结果,一些变量可能也需要回撤。    }}昨天终于把那个小项目磕过去了,关关难过关关过,然后今天新的一天就迎来好运了嘻嘻,一大早起来就在去年的口腔项目群收到最后一个最大的红包五十多哈哈哈哈,中午和朋友立马去吃了顿好的(黄豆鸡脚、藜蒿腊肉、糖醋里脊、番茄虾滑)犒劳一下最近这么辛苦的自己。做了个药企的笔试,还收到了下礼拜的健合无领导面,这几天在吃饭的时候可以拿b站上无领导面试的视频来下饭,多点了解。要把其他面试者当成朋友,就当跟他们在讨论一个有趣的事情,要一起出个主意,不要再像上回那样当场尬住了。要勇敢表达自己的想法,做出一点贡献,也希望不要再遇见那种很爱抢话太强势的人,要peace一点氛围好一点。这些都是可以练出来的,熟悉流程之后就不怕了。加油!同时开始学STL。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-19 16:43
点赞 评论 收藏
分享
11-08 09:02
已编辑
北京邮电大学 C++
1. C++中的“虚继承”是什么?它解决了什么问题?2. 解释一下C++中的“类型擦除”(type erasure)。3. C++中的“命名空间别名”有什么用?如何定义?4. C++中的“std::variant”是什么?它与“std::any”有何区别?5. C++中的“范围for循环”是如何工作的?它的优缺点是什么?6. C++中的“智能指针”和原始指针相比,有哪些优势和劣势?7. 解释一下C++中的“模板元编程”。8. C++中的“强制类型转换”与“隐式类型转换”有什么区别?9. C++中的“异常安全”如何实现?有哪些等级?10. C++中的“基于范围的for循环”如何使用?11. C++中的“nullptr”是什么?它与“NULL”有什么区别?12. C++中的“聚合类”是什么?它有什么特点?13. C++中的“std::deque”与“std::vector”有什么区别?14. 解释一下C++中的“函数对象”(functor)。15. C++中的“引用折叠”是什么?如何工作?16. 如何在C++中实现“单例模式”?17. C++中的“多态”是如何实现的?有什么类型?18. 解释一下C++中的“constexpr”关键字及其用途。19. C++中的“友元类”和“友元函数”有什么区别?20. C++中的“内存对齐”是什么?为什么重要?21. C++中的“静态成员变量”如何使用?有什么特点?22. 解释一下C++中的“动态多态”和“静态多态”。23. C++中的“模板参数推导”是如何工作的?24. C++中的“std::list”与“std::vector”在性能上的区别是什么?25. C++中的“析构函数”何时被调用?有什么注意事项?26. C++中的“std::optional”是什么?它的应用场景有哪些?27. C++中的“内联命名空间”有什么作用?28. 解释一下C++中的“自定义类型转换”。29. C++中的“constexpr函数”有什么限制?30. C++中的“多重模板参数”如何定义和使用?更多嵌入式面经题目,可以看下边大佬总结的面  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
14 88 评论
分享
牛客网
牛客企业服务