当前位置:   article > 正文

字节C++后台开发实习面经_字节 c++实习

字节 c++实习

2022年秋招/春招/提前批/大厂面经整理(持续更新中~)

字节C++后台开发实习面经

一面(40min)

因为一二面是连续面的,而且一面难度很低,就没记录了。

二面(1h20min)

1. 先做个自我介绍吧
个人答案:
姓名、学校、本科、硕士、研究方向、转C++开发原因。
项目自上往下按照自己的理解依次介绍。
以上就是我的自我介绍。(最后一句话)
2. C++的STL里面有哪些容器
个人答案:
序列式容器:vector、、list、deque、queue(稍微提一下容器适配器)、stack、slist(顺带提一下C++11才实现的标准forward_list)。
关联式容器:map以及它的几个变种,set以及它的几个变种。
3. 为什么会用到unordered_map
个人答案:
散列表作为不考虑顺序的键值对很好用。
刷题的时候要用到。
4. 你刷题刷的什么题目,看你简历上面也没有ACM的比赛经
个人答案:
ACM已经不能参加了,要高中毕业后5年内才能参加。
刷题刷的leetcode上面的题,大概刷了一个月。
5. 所以说你是最近刷的题吧,就是为了准备面试对吧,说实话就好
个人答案:
是的,其实是寒假过年的时候刷的了,最近刷的少了。
6. 那我出道题考考你。(map怎么删除value值为奇数的节点)
个人答案:
我觉得这道题的难点应该在于迭代器失效吧。
然后写了代码,出了几个问题。。。。。。。
第一个问题,忘记了怎么取map的value值,不确定是不是当作pair来处理,面试官说是的,但是问我为什么不知道这种访问方式,解释说一般在使用map的时候都是作为读取,然后写了一个if ( map.find(x)!=map.end() ) { int y = map[x] }这也为下一个问题做了铺垫。
第二个问题,这个问题是他后来快结束的时候又返回来问我这个代码有没有问题的。当时写的代码是

	void func(map<int,int>& mapKeyValue){
  for(auto it:mapKeyValue){
    if(it.second%2){
      mapKeyValue.erase(it++)
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

他问我,it++真的没问题吗,我回答说这样会跳过被删除的迭代器,他反问,那你这个for循环不是又回递增迭代器吗。好的,发现错误了,他让我重新写一个,我写了while循环。
第三个问题,改成这样你再确认一遍,真的没问题了吗?看了一遍,我暂时发现不了问题了。嗯,你回去看看it是什么类型的变量,真的可以使用.操作符吗,立马纠错,哦哦,应该用指针。
7. 那你说说看什么容器可以使用[]进行访问,以及访问的原理
个人答案:
首先说哪些容器吧,序列式容器里面的vector、、deque,关联式容器map。
原理是对内存连续,所以可以通过头指针进行偏移操作来访问。但是其实map的[]访问是一种搜索二叉树的过程。
8. 如果让你来对网络进行分层,你会怎么分,不一定要7层和4层5层,就按你的理解就行
个人答案:
那就分为五层吧,物理层、数据链路层、协议层、应用层。
这样分的理由是我认为传输层和网络层协议的层次关系有点复杂了,所以干脆分为一层hhh。
然后物理层就是各种物理通信方式
数据链路层负责将各种通信方式提供一个统一的接口向上为协议层服务
协议层这么分主要是HTTP加了好多层东西,TLS/SSL在HTTP和TCP/UDP之间(挖坑)
应用层呢就是各种应用浏览器使用协议进行通信
9. 按照这么分的话HTTP在哪一层
个人答案:
这个,在协议层。反问,在协议层吗?嗯,应该是在协议层里面具体的网络层。你确定吗?不要用猜的,或者也可以用猜的。但是你要根据能得到的知识来进行推测,推测总比完全猜要好对吧。嗯,那么其实我认为HTTP本身是在TCP/UDP之上的,那么肯定不在传输层,而HTTP应用于各种浏览器场景,我认为是应用层。(我是真忘了在哪一层,确实是应用层)
10. TCP/UDP的区别有哪些呢(好像是一面的问题了,分不清了)
个人答案:
有连接、无连接
可靠、不可靠(顺便提一下HTTP/3使用的就是UDP,但是是可靠的,模仿了TCP的实现)
11. TCP为什么可靠呢(好像是一面的问题了,分不清了)
个人答案:
确认和重传
流量控制
拥塞控制
序列号保证有序(他说也算)
校验和(他反馈这个确实是他想听到的答案)
12. 说一下拥塞控制(好像是一面的问题了,分不清了)
个人答案:
慢启动、拥塞避免、快重传、快恢复。公式太多,细节记不清了,但是曲线是知道的。
拥塞控制的主要思路呢是通过拥塞窗口来影响流量窗口。
慢启动是指数上升,拥塞避免线性上升,快重传直接减半,快恢复线性上升。
13. 介绍一下HTTP/1 HTTP/2 HTTP/3的发展吧
个人答案:
技术的发展都是为了解决某些问题
HTTP/1的问题是短链接每次都需要三握四挥、不安全(HTTPs)、无状态(Cookie)、服务端不能主动发送。
HTTP/2默认了长连接(Keep-Alive)、引入TLS/SSL、Cookie、服务端主动发送、头部压缩、多路复用。但是还有队头阻塞的问题(因为虽然进行了长连接,但是还有一种情况会出现队头阻塞,那就是 丢失重传)。
HTTP/3使用UDP解决了丢失重传导致的队头阻塞,并且使用了TLS/SSL1.3减少了建立HTTPs连接的时间到1.5-2个RTT(往返时间),还引入了二进制编码,其他细节忘记了。
14. 你知道怎么建立0RTT的连接吗
个人答案:
????????????????我直接一堆问号,有吗有吗?(然后他也慌了。。。说是1RTT。。。然后最后又说确实就是0RTT。。。行吧,不懂,技术牛逼。)
后来查了看看,QUIC也就是HTTP/3使用的技术有一个连接恢复,是建立在连接在以前建立的基础上的。QUIC 是如何做到 0RTT 的
15. 介绍一下项目
个人答案:
16. 这个web服务器我就不问你了,感觉人手一个
个人答案:
17. 项目
个人答案:
18. 做题吧:长度为TotalSize的数据怎么分为最长大小限制为Size的小数据块,要求块数越小越好,块长度的差值越小越好。
个人答案:
先说思路吧,直接分就好了,TotalSize/Size,然后还有余的话+1。(talk is cheap,show u code,他叫我写代码)
写代码我是真的服了,不让我写ACM模式,还非得说你就假设这两个变量已经定义好了。嗯……就是不让我运行debug呗。然后还说都是整数,尼玛,整数就难顶了啊,答案就变成了{size,size,size,size,…,size-1,size-1,size-1};就很烦。
最后还反问,你确定这样构造出来的数组求和为TotalSize吗(玩战术的人心都脏!离谱)确认。
19. 我出个场景题吧,现在很多大公司都有一个困境,早晚高峰的时候很多员工堵在电梯。导致很容易迟到。你想个办法吧。什么办法都行,除了加电梯。。。10部电梯-100层楼-每层楼人数相同-员工早高峰同时抵达。
个人答案:
一个想法是每部电梯只固定的10层。如1号只去1-10,2号只去10-20,这样往返时间就短了很多了,就不用每次都停顿100次。
还有更好的想法吗。
好家伙,这还不行,行吧,那就需要辛苦一下员工了hhh
这样吧,我们把电梯的层数减少5倍,意思就是电梯只能去1 5 10 15 20 25层,之后要去到具体的层数让员工自己爬楼梯去吧,反正最多只要爬三层楼梯。顺便在加上我第一个思路,还能有效进行秩序的管理。
可可可,其实这个问题没有正确答案,但是就是希望面试的同学能够想到楼梯,不要把目光只放在电梯上。
20. 如果我们这场面试不存在,或者说如果我和你第一次见面,你怎么用简短的话说服我招你。当然100句话也可以,但是2句话能就解决的就不要再多了。
个人答案:
开始胡扯(首先我最大的特点是善于与人沟通,与他人合作能力强,并且学习能力很强,面对他人指出的错误能够很好的接受并改正,当然技术业务能力也靠谱。最后一点,hhhhhh我自愿加班。)

总结语

希望大家能够时刻保持一颗积极向上的心,我始终相信一件事:机会永远是留给有准备的人

资料分享:下图中的资料是我和群里的小伙伴一起为正在准备秋招的朋友整理的,需要这份校招资料的点赞、转发、收藏之后添加君羊【832218493】 免费了领取!

在这里插入图片描述

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/792776
推荐阅读
相关标签
  

闽ICP备14008679号