字节后端三面凉经

哎😔 面的时候, 根本不知道怎么回答就很难过了...

感觉面试官人很好,特别像我的一个同学(也是一个dalao😂😂),如果实在卡壳,会给提示,然后聊着聊着就超过1个小时了(所以没有手撕代码)

算法

1. 设计算法实现 LFU Cache的实现,不写代码
具体:先给一个lazy删除优先队列+hashTable的双logN算法,后面突然想起来可以维护有序链表hashTable+hashTable双O(1)解决

网络

2. HTTP状态码(分了1xx,2xx,3xx,4xx,5xx详细介绍了以下,502 Bad Gateway什么情况会遇到? 500Internal Server Error又是什么?

3. TCP/IP 为什么一定要有滑动窗口(接收方数据来不及确认,如果零窗口传输会加剧网络拥塞,需要Buffer,需要确认机制,反正我是这么回答的)

4. MemCache了解吗?Redis用过吗?(真没有,后来查了是Memcached一个分布式缓存系统)

5. Serverless应用场景知道吗?(无了)

语言

6. 就问了一个C++的内存管理-Heap,Stack, new, delete然后扯到了smart_ptr, deleter然后谈了实现机制核引用计数存在什么问题?析构过程?

操作系统

7. 页面缓存是什么?有什么作用?(虚拟内存+分段太大=>分页=>页面缓存主要使用场景+优势+多线程/进程情况下的问题?)

8. mmap和Page Cache有什么区别?mmap是COW的,还有请求内存空间大于128K的时候不会从堆上给,而是直接mmap,别的区别当时我真不知道了😓

9. 网络IO的机制(刚刚看过select和epoll又忘记了,人麻了(忘记epoll的文件描述符组织方式是RB树了 害 水平触发和边缘触发也没提))

场景题

10. 系统设计:设计一个分布式ID生成器(即答UUID被否了,然后想了半天时间生成的hash算法也没有头绪,提示了之后联系AUTO INCREMENT KEY好不容易扯了一个实现,优化就更没有了(大概同步代价很大,然后数据库操作比较耗时,查了之后发现原来是个很经典的问题)

11. 一致性hash的应用场景?CDN的例子+忘了怎么move节点了草(刚刚看完这部分)

数据库

12. MySQL的引擎有什么?特点?

13. MyISAM, B+ Tree, Hash Index的特点,应用场景?

14. B+ Tree Index 为什么对并发控制支持比较好?(?!大脑的cache miss了!)

反问

  • 没敢问别的,就问了业务+技术栈 golang

我感觉面试体验一路下来都是很好的,算法题肉眼可见的从一面的medium涨到了二三面hard+hard, 然后难度也是特别的难吧,会问的很细,所以面后端最好多了解一点分布式设计的经典问题(除了计网+OS+数据库之类的)

#面经##字节跳动##后端开发#
全部评论
后天面字节的测试,看到你的问题好慌😨
1 回复 分享
发布于 2022-03-29 23:20
好难啊这
1 回复 分享
发布于 2022-03-29 09:36
这是哪个部门的呀
1 回复 分享
发布于 2022-03-25 20:06
mmap和Page Cache有什么区别? cache是复用的缓存表而mmap是映射关系,因此mmap可能导致page fault。这样回答?面试官怎么讲?
点赞 回复 分享
发布于 2022-05-11 16:13
良心话并不难,lz缺少实践吧
点赞 回复 分享
发布于 2022-05-05 16:27
楼主啥部门啊
点赞 回复 分享
发布于 2022-05-05 14:38
是哪个部门啊
点赞 回复 分享
发布于 2022-04-23 00:47
好难啊
点赞 回复 分享
发布于 2022-04-12 22:15
这不是业务部门吧,真难
点赞 回复 分享
发布于 2022-03-24 22:40
研究生吗
点赞 回复 分享
发布于 2022-03-24 18:52

相关推荐

05-08 15:24
门头沟学院 Java
一面1. 自我介绍2. 讲讲对接下来的实习工作预期?做什么工作内容3. 项目4. 两个文件a、b存储很多ip,电脑内存比较小,求交集?5. 关注者动态按照时间去查看动态设计二面1. JVM的内存回收   - int类型的回收和对象的回收是否相同   - 为什么堆不用类似栈的压栈弹栈进行内存管理     - 互联网的根在美国,如果美国把到中国的网线砍掉,但是中国的网络还是个自治的系统,为什么要释放掉?(可达性分析)(为什么说根到不了了,对象就没用了)(那一些不被根对象直接间接引用的对象们,可能自己运行的挺好,是自治的,那为什么要把他们释放)(可达性分析为什么是合适的,为什么那块内存是垃圾)   - 2. 数据库   - 左手、右手连上MySQL(默认隔离级别)   - 左手begin transaction,打开事务,右手也同样打开   - 左手select account from t where id=1,右手同样select   - 都查出来是50   - 左手update设置值为40(付款10块),现在左手右手同时select,分别看到的是什么值   - 右手设置这个值为60(退款10块),再select会怎么样   - 左手commit,右手的update阻塞结束,可以执行,这时候再左手右手select,什么情况?   - 右手再commit,左右手分别selec他,是多少   - 好,现在就是程序左手是减10,右手是加10,左右看到的数据都是60,是不符合预期的(应该都是50),怎么解决?想你能想到的所有方法3. 网络   - TCP三次握手,不想跟你聊书上的,我们现实中打电话,我说喂,你说喂,然后就直接说话了,打电话好像只用两次喂。你要么解释打电话为什么两次喂就行,要么解释TCP为什么第三次握手   - 为什么人打电话就用了两次握手4. IoC、依赖注入、依赖倒置什么意思5. 职业规划?为什么不AI6. 有用过kook吗?周围同学有用过吗?7. 实习多久
点赞 评论 收藏
分享
评论
18
168
分享

创作者周榜

更多
牛客网
牛客企业服务