字节面试,真滴难!

JavaGuide

共 3151字,需浏览 7分钟

 · 2023-10-15

这是一位球友在9月份的时候分享的字节面经,原贴地址:https://t.zsxq.com/13thSy0fw 。真实可信,分享一下,希望对需要的朋友有帮助!

下面是正文。

xdm,拿到字节 offer 了,准备去了。虽然又得要转 go 了,哎。。。go 跳 java,又从 java 跳到 go,反复横跳,都学的不深。

分享一下字节面经(乱序回想版)。

一、算法题:

  1. 给定一个字符串 abcdabgh,给个字符 a,随机返回 a 下标,比如这个是 0 4。要求返回的概率必须一样,空间复杂度要求 O1 即不能开任何空间存储下标,并且只能遍历一次。
  2. 给定 n 个骰子,和为 k 的概率,不能用回溯。
  3. 给一个数字比如 234,给个数组比如{2,3,7},找出第一个不大于 234 的数,比如这个是 233,有几种情况我记得是,这里用到了有序表我写的时候。

二、八股文

可能不全有的我好像也没有整理,还算比较简单。

计算机基础

  1. 堆和树的区别?应用场景?二叉搜索树是什么?
  2. 进程之间的通信方式?写个死锁?怎么解决?
  3. 操作系统内存满了怎么办?如何回收?有什么影响?
  4. 什么是僵尸进程?应该怎么去操作?
  5. 为什么会有线程安全的问题,如何解决?
  6. 说一下乐观锁和悲观锁?说一下 CAS?aba 问题是什么?如何解决?
  7. http 常见的方法和状态码有哪些?502 是什么错误?如何排查问题?讲一下反向代理?

MySQL

  1. 索引构成?(B+树)索引优化?给个 sql 让判断走索引的情况?
  2. 什么是慢 sql,如何查找,如何优化?
  3. 三大日志,我记得好像有个问题是 redolog 写进去了,但是有个 bin log 没写进去该怎么办?(具体的我忘了,我没回答好)讲 write 还有 flush 区别?redo log 刷盘时机?三大日志的执行顺序?
  4. MySQL 的事务隔离级别?各自解决了什么问题?mvcc 的流程

Redis

  1. 问了 zset 的底层?为什么不用红黑树?(这是我自己引得,我傻了自己说了一句没用红黑树,用的是跳表)
  2. Redis 里面的命令行比如 setnx 和 setex 还有 zset 里面的
  3. Redis 的 key 有大小的限制吗?有什么影响?怎么办?
  4. Redis 的内存淘汰策略?(面试的时候一直想不起来 一直背了半天旁路缓存那些东西 我以为凉了的)
  5. 根据 score 查 member 的时间复杂度?反过来根据 member 查 score 时间复杂度?

场景设计

敏感词库的设计,要求增删改查敏感词。敏感词文本匹配,敏感词一万个,文本长度 20-10000 这样子。

trie 树什么的都回答了,开什么几个线程这样子,我也是各种瞎说,后面问我在这里面怎么存储持久化,给出方法,Redis 里面存储如果宕机了怎么办有个节点?这一块真的虚,我也不知道怎么办,感觉面试官很厉害,我给的方案他好像都否定了,说我的方案一天宕机几分钟怎么可能行?

三、项目和实习

这块也有一些闲聊没有写进来。

  1. 微信扫码登录流程?后面的原理你了解吗?(准备了很久的 Oauth2 总算碰到了开心)csrf 是什么?怎么解决的?
  2. 项目难点(之前登录日志是同步写入库的 后来为了提升效率加入了队列 先写队列后消费入库 做解耦 但是队列用了同步操作 有一次 MQ 挂了 导致登录服务不可用 这种是不可接受的 记日志不能影响登录 所以将其改为了异步方式)
  3. 订单 30 分钟取消,延时消息这里(这个是我自己引申的,我包装了一下,我把 MQ 的 18 个队列讲了一下,也讲了一下 kafka 的时间轮)
  4. 你实习用的什么语言?go 的协程里面出现 panic 怎么办?defer 讲一下?gmp 模型了解吗?

希望对大家有一些帮助,冲!

··············  END  ··············

👉专属面试小册/一对一提问/简历修改/专属求职指南/学习打卡,欢迎加入 JavaGuide 官方知识星球 (内附星球专属优惠券)。

👉星球提供的部分技术专栏/资料(持续更新完善):

👉星球提供的部分服务(点击图片查看星球详细介绍):


👉 近期文章精选


浏览 8892
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报