面试专题整理|字节九面终上岸,成为打工人的总结,辛酸面经分享

前言 【面试专题整理|字节九面终上岸,成为打工人的总结,辛酸面经分享】今天分享一位小伙伴9面字节的经历,我都有点佩服这位小伙伴的心态。
这位小伙伴基本是从春招就开始面试字节了,直到秋招结束。拿下offer之后也是朝我一把鼻涕一把泪的分享。
话也不多说,直接分享一下小伙伴的经历吧!
面试专题整理|字节九面终上岸,成为打工人的总结,辛酸面经分享
文章图片


一面

  • Session存在哪里,怎么把session_id返回个客户端?
  • Redis的数据结构,它有哪些复杂数据结构?
  • Http与Https的区别,详细描述加密非对称加密的过程
  • 线程与进程的区别?
  • IO多路复用
  • redis服务端是多进程还是单进程,多线程还是单线程
  • top loadaverage怎么计算的
  • hashmap解决冲突的方式
  • 数据库的事务,什么是幻读?事务是怎么实现的
  • linux的命令,如何查看服务器负载?
  • 算法题
一个长度为n的数组,元素在1到n之间,找到一个重复的元素,空间复杂度越低越好
二面
  • 如何查看端口占用情况
  • 如何查看远程服务器某一个端口被占用
  • 可以ping通,当时客户端连接不上服务端,什么原因
  • 算法题
    1.最长不重复子串;
    2.找比当前数大的下一个数,如1243,结果是1324;
  • 数学题
    1.有三个盒子,其中一个有奖品,参与者选中一个后,主持人打开另一个盒子没有奖品,问参与者是否换盒子,换与不换的中奖概率是?
三面
  • 操作系统包括哪些部分
  • 如何进行内存分配
  • 进程切换发生哪些事情
  • fork函数
  • 项目:分布式如何扩容缩容
  • 算法题
    1. 给定一个升序数组,一个target值,找比target小的最大数字(类似于升序插入排序的一个步骤)
int begin = 0; int end = arr.length - 1; int mid = 0; while(begin < end){ mid = begin + ((end - begin) >> 1); if(arr[mid] < target) begin = mid + 1; else end = mid; } //end = mid 肯定会更新,但是begin = mid可能就不会更新,必须要begin = mid + 1,推进区间的收缩

苟到三面的时候因为太菜被挂了,随后就被hr告知又被国际部门捞了。

被捞一面
  • 1.http keepalive、tcp keepalive
  • 2.MQ作用、原理以及主要组件
  • 3.kafka了解吗,各个MQ的对比
  • 4.RocketMQ中topic、queue的具体含义
  • 5.集群消费、广播消费
  • 6.protobuf作用
  • 7.为什么项目里要用protobuf,protobuf 的好处
  • 8.市面主流的RPC框架了解多少
  • 9.项目中RPC框架中怎么定义协议的
  • 10Redis持久化方式
  • 11.Redis单进程还是多进程??我印象挺深的,为什么面试官要说单进程而不是单线程
  • 12.Redis集群策略、分槽
  • 13.Redistribution集群中不同节点如何通信
  • 14.Gossip协议
  • 15.跳表结构
  • 16.算法题
1.带有随机指针链表的深拷贝
被捞二面
  • 1.削峰
  • 2.多级缓存一致性
  • 3.延迟双删解决主从Redis节点的数据一致性
  • 4.秒杀项目中缓存预热
  • 5.队列泄洪
  • 6.MySQL事务
  • 7.Docker
  • 8.dubbo服务发现
  • 9.注册中心服务判活
  • 10.负载均衡策略
  • 11.哈希一致性
  • 12.Linux查看具体端口是否被占用
  • 13.思考题:2000w高考成绩(有大量相同数据),无内存限制,要求O(n)时间复杂度排序。【当时说用桶排序,只要同桶的数量趋近于高考人数,就可以做到O(n),事后才想到可以用Trie树,有点可惜】
  • 14.算法题:
1.链表节点两两反转
2.链表n个节点为一组反转
被捞三面
  • 1.项目中限流怎么做的
  • 2.令牌桶原理、数据结构??数据结构这个我是真的懵了,后来想可以用一个volatile自增字段+阻塞队列实现
  • 3.MySQL乐观锁悲观锁以及对应的sql语句
  • 4.数据库隔离级别
  • 5.dubbo的好处
  • 6.算法:
1.删除字符串中 ab,保证最后字符串没有连接的 ab,例 aaabbb
这次面试应该是部门领导人,讲真,这次面试体验真的不太好,整个过程加撕代码只进行了35min,感觉面试官全程都在看简历+写面评,基本没在听说啥,以至于有好几次说完之后都会有至少15s的冷场,哪怕面试官嗯一声给个反馈也好啊,所以最后这场面试是铁挂了,但还好赶上了提前批

提前批一面
  • java GC
  • java内存模型
  • 进程、线程
  • 线程切换代价为什么小——除了共享内存外线程切换并不会清空CPU和主存之间的缓存
  • 线程状态
  • 线程什么时候挂起
  • 死锁必要条件、如何避免死锁
  • 进程间通信
  • OSI七层模型
  • http常用方法
  • post请求返回的100状态码是协议规定的还是浏览器规定的
  • MySQL存储引擎、区别
  • 两用引擎优势
  • 联合查询
  • 查询优化器
  • Redis基本类型
  • Redis zset怎么实现
  • Redis持久化方式
  • 全量复制、部分复制
  • 复制积压缓冲区
  • 算法题:
1.买卖股票二
2.买卖股票三

提前批二面
  • 缓存作用
  • 分级缓存如何保证数据一致性【面试官一直深入分级缓存的数据一致性,比如什么时候删除脏数据、Redis主从部署怎么保证之类的,总之问的挺深,面试官逻辑非常缜密】
  • 分布式锁的实现、原理
  • 序列化反序列化
  • 如果自己实现序列化该如何操作,假如有一个int类型,你如何序列化为字节流
  • 序列化如何支持跨平台
  • TCP流量控制、拥塞控制
  • TCP流量控制是通过接收端发送带有接受窗口剩余大小的ACK来实现的,那么如果接收端的TCP没有CPU调度会发送ACK吗,会不会因为接受窗口满了并且不能及时发送ACK导致数据丢失【这个问题讨论了好久,不得不说,这个面试官真的好】
  • 数据库隔离级别
  • MVCC
  • InnoDB索引实现
  • 联合索引
  • MySQL字段类型的长短会对性能有影响吗
  • 前缀匹配
  • 算法题:
1.走格子
2.走格子+陷阱
3.走格子,每个格子有血包或者怪物能让自己加血扣血,问走到右下角至少需要多少血量 ,可以从右下到左上的逆向dp,并且dp[m][n]=0作为初始条件 【当时觉得面试官想象力真丰富,能想到这么生动的算法题,好像叫地下城与勇士。】
4.如上题条件,给定一个初始血量,判断能否到达右下角

提前批三面
  • 为什么要实现一个RPC框架
  • 问什么不用本地调用,而要用微服务(为什么?因为简历上没微服务过不了初筛啊)
  • 微服务的好处
  • 微服务网关模块的具体逻辑,为什么要用网关
  • 网关模块怎么可以保证整个系统的安全性
  • 微服务的业务模块拆分,为什么要这样拆分
  • 对称加密、非对称加密
  • MD5是对称加密么(这部分答错了,有点可惜)
  • 项目中怎么用MQ的
  • 算法题:
1.输入n,k,输出n的字典序的第k位数字,若n=15,k=7,1 10 11 12 13 14 15 2 3 4 5 6 7 8 9,输出15
这道题浪费了好多时间,刚开始还傻乎乎的重写Comparactor+StringBuilder来定义字典序,然后转化成topk问题解决,面试官说还有更优解,当时一直没想出来,也浪费了好多时间,最后面试官可能有事吧,等到1h时候面试官说可以了,今天面试先到这里吧,然后就挂了。。。事后才知道可以用Trie树或dfs直接找到第k个数,然后就感觉特别可惜,因为觉得自己前半段发挥挺好的,就因为这道题,以至于颓废了两三天,但最后结果还是好的,三面四天后收到了部门的意向书

最后 字节面试贯穿了小伙伴整个2020。最终相信, 绝大数情况下,坚持一定可以胜利!努力就有回报,加油!
最后将小伙伴的学习资料分享给大家
免费领取资料:戳这里免费领取,暗号:CSDN 还有更多大厂面试题哦!
面试专题整理|字节九面终上岸,成为打工人的总结,辛酸面经分享
文章图片

面试专题整理|字节九面终上岸,成为打工人的总结,辛酸面经分享
文章图片

面试专题整理|字节九面终上岸,成为打工人的总结,辛酸面经分享
文章图片
面试专题整理|字节九面终上岸,成为打工人的总结,辛酸面经分享
文章图片

读者不点关注,诶,我一点也不慌,他皮任他皮,先和他们交流一波,哎哟,被喷了,喷他?不存在的,我反手给他道一手真挚滴歉,看读者怎么说,诶,这就很舒服。评论区要炸?问题不大,我先每一条都点个赞,边缘OB一波,评论区怎么说。哟,这个人铁头娃,很有灵性,好像真的要炸。我头皮发麻了,但我不怕,这时候就要逆向思维,免费送他一份学习资料,这波不亏,你以为呢?堂堂nice博主会怕你个评论区?我心态很好,一点事都氵
以上资料免费领取:戳这里免费领取,暗号:CSDN


    推荐阅读