字节跳动面经(游戏研发)

字节跳动面经:

面试官:先介绍自己。(2分钟)

卑微的我:******

面试官:简历上的项目介绍一下(20分钟)

卑微的我:介绍项目各种细节

面试官:你们团队几个人啊?为什么这个项目没有用数据库?

卑微的我:四个吧,还有一个划水。当时这个软件数据存到本地了,所以使用了SQLite。*******

面试官:你说你用C++,那先说一下内存分配吧,new 和 malloc的区别是什么?

卑微的我:就简单说了一下返回类型,初始化,按什么分配以及未成功时的处理不同。

面试官:说到内存了,进程和线程的区别是什么?

卑微的我:系统分配资源的基本单位,线程时CPU调度的基本单位。接下来讲了通信机制,切换之间的不同。

面试官:C++STL用过吧?vector和set实现机制有什么不同?vector内存怎么申请的?

卑微的我:vector用数组,set用的时红黑树。Vector内存分配使用的是STL的allocator分配器,采用二层分配机制,申请内存大于128K时使用malloc,小于128K时使用内存池,接着讲了一下内存池的机制,维护16个空闲链表之类的。***

面试官:数据库里索引是干什么的,怎么实现的?

卑微的我:提高数据查询速度,*****

面试官:虚函数时怎么实现动态多态的?

卑微的我:对象首地址时一个虚函数表指针,指向存放在进程data段里的虚函数表,然后讲了一下虚函数表是干啥的,怎么继承和修改虚函数表里的函数地址之类的****

面试官:那么纯虚函数是干啥的?

卑微的我:定义纯虚函数的类为抽象类,它像继承它的子类提供一个接口,自己不用去实现。

面试官:学过计网吧,TCP/IP是哪一层的,他们的头部都包含什么信息?

卑微的我:运输层和网络层。然后就是介绍TCP/IP头部字段,序号确认号 六个标志位啊什么的,IP有源IP地址和目的IP地址之类的***

面试官:那你来说一说这些报文段经历路由器后头部的哪些字段会变?

卑微的我:(没考虑过,就随便说了一道)首部字段应该变,因为路由器下面的链路层MTU不一样,报文段切片后的MSS也不一样。

面试官:算了,不问你那么细了。你刚才说到了连接管理,那么TCP建立连接为什么要3次,断开连接要4次?

卑微的我:因为TCP是全双工服务,断开连接后,另一方还可能有数据要发送,所以2 3步的确认报文和请求报文不能合在一起,建立时候可以,提高效率。

面试官:TCP断开连接后有一个TIME_WAITE状态,说一说为什么断开后还要等?

卑微的我:(要哭了)不清楚。

面试官:结构体用过吧?说一说和类的区别

卑微的我:默认的访问权限不一样。结构体是public,类是private。

面试官:那结构体为什么要字节对齐?

卑微的我:就简单介绍,减少CPU寻址次数,提高数据读取效率啊什么的

面试官:来写一下这一道题。给你20分钟(LCA算法)

卑微的我:写完讲了下思路。

面试官:你可以做个后序遍历,路径存到数组里然后两个数组去匹配节点。

卑微的我:其实你这个空间复杂度太高。

面试官:你还有什么要问我的?


整个过程70分钟,MMP,吐了吐了。

#字节跳动游戏研发##字节跳动##游戏研发工程师##面经##校招#
全部评论
完了,我也是游戏开发,还他妈笔试中来
1 回复
分享
发布于 2020-03-19 18:52
我被约的周日 同游戏研发 看你这个问的我慌了兄弟
点赞 回复
分享
发布于 2020-03-19 21:46
百信银行
校招火热招聘中
官网直投
我被问了也40多分钟吧
点赞 回复
分享
发布于 2020-03-20 11:03
 请问你笔试过了几题呀?
点赞 回复
分享
发布于 2020-03-20 23:31
所以学长最后你拿到offer了吗😥
点赞 回复
分享
发布于 2020-04-05 12:34
我感觉面试官问的有点狠,还能搞到70分钟,光剖析项目就整了20分钟
点赞 回复
分享
发布于 2020-04-13 16:51
这是面试还是考察背书呀。太恐怖了吧
点赞 回复
分享
发布于 2020-04-15 22:57

相关推荐

第一题,直接把所有年龄的情况列举出来第二题,动态规划int main() {    int a, b;    // 全选    // 选择单个    // 复制所选    // 粘贴所复制的文本    int T; cin>>T;    int maxOP = 0;    vector OP(T, 0);    for(int i=0;i cin>>OP[i];        maxOP = max(maxOP, OP[i]);    }    vector dp(maxOP + 10, INT_MAX);    dp[1] = 0;    dp[2] = 3;    //dp[8] = 8;    // dp[9] = 10;    // dp[9] = 4 + 3 + 1 (3 + 3 + 3)    // 1 = 0    // 2 = 3    // 3 = 4    // 4 =    for(int i=3;i        for(int j=2;j            if(i % j == 0) dp[i] = min(dp[i],  dp[j] + (i/j)+1); //如果第j是第i的倍数,可以累计(i/j)个i            dp[i] = min(dp[i], dp[j] + (i-j) + 2); //这个后面才想到,必须要加这个,这个表示第i个可以使用单个复制粘贴到第j个        }        dp[i] = min(dp[i], 1 + i); //第i个使用1个来解决    }    for(int i=0;i        cout    }}第三题,没想到暴力也能过,直接暴力贪心,选取最大没访问过的房间攻击或者直接加当前战斗力的1/10,暴力就可以。第四题,模拟永杰无间,题目太长,就是模拟题,没写直接交卷了。
投递网易雷火等公司10个岗位
点赞 评论 收藏
转发
4 60 评论
分享
牛客网
牛客企业服务