字节面试,真滴难!
这是一位球友在9月份的时候分享的字节面经,原贴地址:https://t.zsxq.com/13thSy0fw 。真实可信,分享一下,希望对需要的朋友有帮助!
下面是正文。
xdm,拿到字节 offer 了,准备去了。虽然又得要转 go 了,哎。。。go 跳 java,又从 java 跳到 go,反复横跳,都学的不深。
分享一下字节面经(乱序回想版)。
一、算法题:
-
给定一个字符串 abcdabgh,给个字符 a,随机返回 a 下标,比如这个是 0 4。要求返回的概率必须一样,空间复杂度要求 O1 即不能开任何空间存储下标,并且只能遍历一次。 -
给定 n 个骰子,和为 k 的概率,不能用回溯。 -
给一个数字比如 234,给个数组比如{2,3,7},找出第一个不大于 234 的数,比如这个是 233,有几种情况我记得是,这里用到了有序表我写的时候。
二、八股文
可能不全有的我好像也没有整理,还算比较简单。
计算机基础
-
堆和树的区别?应用场景?二叉搜索树是什么? -
进程之间的通信方式?写个死锁?怎么解决? -
操作系统内存满了怎么办?如何回收?有什么影响? -
什么是僵尸进程?应该怎么去操作? -
为什么会有线程安全的问题,如何解决? -
说一下乐观锁和悲观锁?说一下 CAS?aba 问题是什么?如何解决? -
http 常见的方法和状态码有哪些?502 是什么错误?如何排查问题?讲一下反向代理?
MySQL
-
索引构成?(B+树)索引优化?给个 sql 让判断走索引的情况? -
什么是慢 sql,如何查找,如何优化? -
三大日志,我记得好像有个问题是 redolog 写进去了,但是有个 bin log 没写进去该怎么办?(具体的我忘了,我没回答好)讲 write 还有 flush 区别?redo log 刷盘时机?三大日志的执行顺序? -
MySQL 的事务隔离级别?各自解决了什么问题?mvcc 的流程
Redis
-
问了 zset 的底层?为什么不用红黑树?(这是我自己引得,我傻了自己说了一句没用红黑树,用的是跳表) -
Redis 里面的命令行比如 setnx 和 setex 还有 zset 里面的 -
Redis 的 key 有大小的限制吗?有什么影响?怎么办? -
Redis 的内存淘汰策略?(面试的时候一直想不起来 一直背了半天旁路缓存那些东西 我以为凉了的) -
根据 score 查 member 的时间复杂度?反过来根据 member 查 score 时间复杂度?
场景设计
敏感词库的设计,要求增删改查敏感词。敏感词文本匹配,敏感词一万个,文本长度 20-10000 这样子。
trie 树什么的都回答了,开什么几个线程这样子,我也是各种瞎说,后面问我在这里面怎么存储持久化,给出方法,Redis 里面存储如果宕机了怎么办有个节点?这一块真的虚,我也不知道怎么办,感觉面试官很厉害,我给的方案他好像都否定了,说我的方案一天宕机几分钟怎么可能行?
三、项目和实习
这块也有一些闲聊没有写进来。
-
微信扫码登录流程?后面的原理你了解吗?(准备了很久的 Oauth2 总算碰到了开心)csrf 是什么?怎么解决的? -
项目难点(之前登录日志是同步写入库的 后来为了提升效率加入了队列 先写队列后消费入库 做解耦 但是队列用了同步操作 有一次 MQ 挂了 导致登录服务不可用 这种是不可接受的 记日志不能影响登录 所以将其改为了异步方式) -
订单 30 分钟取消,延时消息这里(这个是我自己引申的,我包装了一下,我把 MQ 的 18 个队列讲了一下,也讲了一下 kafka 的时间轮) -
你实习用的什么语言?go 的协程里面出现 panic 怎么办?defer 讲一下?gmp 模型了解吗?
希望对大家有一些帮助,冲!
·············· END ··············
👉专属面试小册/一对一提问/简历修改/专属求职指南/学习打卡,欢迎加入 JavaGuide 官方知识星球 (内附星球专属优惠券)。
👉星球提供的部分技术专栏/资料(持续更新完善):
-
《Java面试指北》(准备 Java 面试的小伙伴可以看看,原创内容,质量很高) -
《后端面试高频系统设计&场景题》(包含了常见的系统设计案例比如短链系统、秒杀系统以及高频的场景题比如海量数据去重、第三方授权登录) -
《Java 必读源码系列》(目前已经整理了 Dubbo 2.6.x、Netty 4.x、SpringBoot 2.1 等框架/中间件的源码) -
《后端高频笔试题(非常规Leetcode类型)》(一些常见的非常规 Leetcode 类型的高频笔试题,每一道题目都有详细的解答)
👉 近期文章精选:
-
我坚持四年了! -
拿到快手意向了! -
阿里淘天一面,秒挂! -
拒绝入职央企软开岗,薪资太低! -
23届普二本Java的求职历程(已秋招成功) -
快手Java一面,全是基础! -
面试被挂,项目太简单! -
拿了两个 offer,怎么选?
评论