字节跳动后端开发三轮技术面面经,已拿offer

(这些面试题的答案,以及计算机基础常见面试题,我都整理在了:GitHub - wolverinn/Waking-Up: 计算机基础面试问题总结,包含详细的follow-up question以及答案,欢迎围观~)

一面:

计算机网络
  • 三次握手
  • 握手时产生的序列号干什么用的
  • 讲一下接收窗口
  • TCP和UDP的本质区别
  • 什么时候选择TCP/UDP
  • HTTPS的连接过程
  • 7层模型和4层模型,每一层有哪些常见协议?
  • 路由器/交换机是哪一层
  • 网络层用来干嘛?传输层用来干嘛?
  • HTTP可以使用UDP吗
  • HTTPS怎么确认收到的包就是服务器发来的
  • 确定发送窗口的大小,如何最大利用带宽,假设延迟100ms,发送端10Mb/s,接收端100Mb/s
数据库
  • 事务的四大特性
  • 四种隔离级别
  • 什么是幻读
  • InnoDB 怎么防止幻读
  • B+树原理,为什么使用B+而不是二叉平衡树
操作系统
  • 用户态如何切换到内核态
  • 进程间通信的方式,哪种最快
  • 信号量怎么实现对共享资源的访问
语言
  • 什么是Python生成器,迭代器;
  • 什么是装饰器;
  • 元组和list的区别;
  • Python中的dict底层怎么实现的
  • list的底层怎么实现的;
  • 双等于和is有什么区别
算法
  • 求x的y次方,想出比直接for循环更好的方案
  • 求绝对众数

二面

设计题:一个数据库存了以下数据:用户id,登录时间,登出时间;如何找到一天当中的用户峰值(用一个hash map存所有秒数的在线人数)

为什么要分用户态和内核态

Git 切换分支,提交,具体如何合并分支

Python多线程用了几个CPU

算法:二叉树,输出所有和为n的路径(可以从中间结点到中间结点)


三面

和其他同学相比,你觉得自己有什么优势
自己的不足有哪些
GitHub和博客上分享过哪些东西
TCP的流量控制和拥塞控制
浏览器中输入网址到获得页面的全过程
输入 www.baidu.com,怎么变成 https://www.baidu.com 的,怎么确定用HTTP还是HTTPS
接触过哪些后端框架
知道redis吗
你用Django的时候,觉得它有哪些好的特性
除了Python还接触过哪些语言
多久入职

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容