字节跳动 后端开发 一面面经

概述:字节约面和面试的效率都挺高的,一面面试官很年轻,手撕不是leetcode的,花了点时间,然后主要问八股和项目,大概80分钟

面试过程:

1、自我介绍

2、手撕,第一道没想清楚,做的第二道

  • 鱼缸的最大高度,给定雨水数量,和鱼缸内各列的石头数目,求能使鱼缸被雨水填满的最大高度
  • 想到了二分,但是没想清楚,一直想用接雨水
  • 面完后想了下,假设没有石头时的鱼缸最大高度h,最终的H肯定在(h+所有列的最小石头数,h+所有列的最大石头数)之间,然后二分查找最优值,每次确定H后可以直接算出需要的水的数量(接雨水完全复杂了)
  • 给定一颗树,选2个节点,分别下落到叶子节点,最终结果有多少种可能
  • 叶子节点值为1,非叶子节点值为子节点值之和,BFS分层,从底层往上层计算值,2节点值相乘就是结果

3、HTTPS握手过程

4、会话秘钥生成用的什么算法,具体原理是什么

5、MySQL在磁盘上是怎么存储的

6、讲一下B+树也就是索引的实现

7、通过索引就能直接找到记录吗

8、数据页是怎么查找到记录的

9、索引的分类

10、前缀索引算一种分类吗,与普通索引的区别

11、前缀索引的索引页上记录的是前n个字符还是整个字符串

12、讲一下自己做的项目

13、epoll是怎么实现的

14、epoll如何处理发生事件的fd

15、epoll与poll的区别

16、为什么poll不能只返回发生事件的fd,了解poll底层怎么实现的吗

  • poll是指定fd关注的事件,然后拷贝到内核中检测对应事件是否发生,发生了即可以返回所有fd,没有在内核中维护一个记录已发生事件的结构表,而是全部拷贝回用户态,兼容性更好
  • 从api上看,poll给定的fds数组包含所有需要检查的数组,epoll的fds都存在内核中,epoll_wait传入events来保存发生的事件

17、项目中线程是怎么工作的

18、为什么考虑使用协程作为任务

19、协程怎么实现的

20、ucontext是什么

21、项目中怎么用到epoll的

22、没有进入协程任务队列的协程存放在哪里

23、如果有个协程运行时间过长,协程任务队列中的协程会不会延时,怎么处理?

24、反问

#字节求职进展汇总##牛客创作赏金赛##软件开发笔面经#
全部评论
bro什么学历
点赞 回复 分享
发布于 今天 08:50 上海
广州的业务中台?
点赞 回复 分享
发布于 今天 13:00 陕西

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务