字节跳动一、二、三面面经(后台开发,广告部)

字节广告部,9.17一面,9.18二面;

基础知识问题:

1.tcp和udp的区别是什么?哪些场景下会使用udp?
2.select的缺陷有哪些?epoll的优势是什么?
3.为什么要使用缓存? 缓存的更新策略有哪些?怎么进行选择?
4.如果更新db成功但是更新缓存失败引发数据不一致,怎么解决?
5.redis的缓存穿透怎么解决?redis缓存雪崩了怎么办?有哪些具体的策略?
6.redis的缓存删除策略有哪些?你知道哪些变种的LRU方案,简单讲讲?
7.TCP是怎么保障数据的顺序?
8.为什么TCP握手要四次,而挥手需要四次?TCP的第三次握手做了什么?可以把一些其他的数据和第三次握手的ACK一起发送给服务端吗?
9.TCP的拥塞控制方法有哪些?TCP的重传机制有哪些?
10.为了提高系统的并发量,可以从哪些方面改进?
11.死锁是怎么产生的?举个例子?怎么避免出现死锁?
12.乐观锁和悲观锁的区别?数据库的MVCC实现原理?
13.mysql的主从同步是怎么做的?
14.redis的持久化是怎么做的?两种方式各自的优缺点有哪些?
15. 想起来再更新。

算法题 和 代码题:

1.写一个死锁;
2.写一个高并发环境下的单例类;
3.快排和归并排序实现;
4.给一个链表,2个一组进行反转,并写测试用例;

场景题:

微信的pc app server端的通信问题:app已登录,接下来你要登陆PC微信,微信的二维码里包含什么信息?整个扫码到PC端微信上线的过程中,交互逻辑是什么?
(相关分析请查看:https://www.cnblogs.com/sxdcgaq8080/p/10685818.html)
另外很大一部分时间在讨论我项目和论文相关的问题。

在这里插入图片描述

在这里插入图片描述

三面:9.21晚上面的,持续时间60分钟。

基础知识

1.操作系统访问内存的完整过程描述下?
2.阻塞IO和非阻塞IO的区别是什么?
3.如何实现一个带超时功能的connect函数?
4.线程间的通信方式有哪些?信号和信号量有什么区别?
5.Linux中发送信号的命令是哪个?
6.百度大搜的整体架构图(实习相关)?
7.实习项目;

代码题:实现一个智能指针

面试官自己选一个写就行,我写了shared_ptr。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋风遗梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值