字节跳动一、二面面经(后台开发)

9.7面试,面的是一个做推荐相关的部门,具体名字忘了;

一二面连一块面完的,每面都在50分钟左右。一面呢,主要围绕我的简历上的项目展开,一个是我的课余实践项目-简易的高性能网络通信引擎,另一个是我的实习项目-一个高并发环境下的本地cache。面试官提的问题很细,挖的比较深,感觉真的听的很认真!另外还做了两个代码题,基础知识基本没问。两道代码题如下:

一题要求完成两个需求:
1.可以在外部控制run的运行和终止;
2.每次执行stop函数可以立即将程序终止,无需休眠,实现完美退出;

第一个比较简单,第二个呢,我说可以用信号的方式来通知,但我没用过,不知道咋写。面试说可以修改休眠等待的方式,于是我就提了下用条件变量的cv.wait_for()函数,每次stop的时候直接cv.notify_one()打断休眠。

第二题我以为是一个高深的算法题,我说我只会暴力的方法。他提示可以通过预处理的减小复杂度,于是就加了些排序和减枝的操作在里头;

本以为一面挂了,但很快约二面,大概率是因为项目答的不错吧;

二面面试官很严肃但是更认真了,开始围绕我的本地cache深挖细节,问到了以下这些问题:
1.hashmap的查询时间复杂度是多少?一定是O(1)吗?
2.hashmap的负载因子一般是多少?为什么要设置成这个值?
3.hashmap的哈希桶数为什么要设置为2的n次方-1?
4.你使用的hashmap是怎么保障线程安全的?怎么做到线程安全的同时保障高效的?它的加锁范围你知道吗?
5.如果QPS过高,多个query同时对一个桶操作,排队加锁等待比较耗时,会严重影响性能,请问怎么解决(我提了三四种奇奇怪怪的解决办法,面试官都不满意。最后提了下那就同时开多个hashmap,再通过对query哈希到对应的hashmap上去操作,没想到终于说到面试官期待答案上去了)?
6.那请你将这个解决思路是实现下?(于是剩下的一半时间在写这个)

在他边提意见我边写的情况下,这个代码写完之后面试官就表示面试结束了;

一点感想:感觉字节的面试真的很nice,面试官循循善诱,很注重启发面试者思考和解决问题,而且认真程度很不一般,不像大多数厂家更多的是在考察背书背题能力。面试体验一流,感觉一次面试能学到很多东西。二面完后没消息了,感觉大概率挂了,不过有机会我还是会再面的!

#面经##校招##C++工程师#
全部评论
楼主你好,请问你是实习、校招还是社招?岗位是什么?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复 分享
发布于 2020-09-09 11:09
本地cache,是类似redis吗?
点赞 回复 分享
发布于 2020-09-09 11:41
一共几面啊?三面估计啥时候?
点赞 回复 分享
发布于 2020-09-09 20:38

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
评论
4
11
分享
牛客网
牛客企业服务