秋招大厂第一面字节三面速通面经
一面
- Java 中创建一个不可变的类
- Java 的线程池的工作模式,拒绝策略有哪些
- hashTable和hashMap的区别
- concurrentHashMap怎么实现的
- volatile 这个关键字的作用
- Redis 核心数据结构
- zset,它的底层实现是实现的结构
- 跳表和平衡树的区别,为什么要选跳表
- Redis 的持久化
- Redis 实现分布式锁
- set NX的缺点 死锁,加ttl,用redssion的看门狗续约锁
- redis双写一致性【简历】
- 对账的任务吗?可每天凌晨,或者说每天一个固定时间点去校验一下 Redis 跟 DB 的一些数据,是否一致
- Redis 高可用分片集群【简历】 配了几组哈希槽一共有多少个
- 用户请求怎么定位到对应的分片集群【答得不行】
- Left join,right,innner【烂】
- 回表查询跟索引覆盖
- MySQL 分表是根据什么去分的【简历项目】
- mq还用来做什么其他业务了吗,除了异步通知实现redis双写一致性
- 还了解其他mq,kafka,rocket mq 吗?
- 了解在线任务和离线任务的mq选型吗
- 限流是怎么做的?【说得一坨大便】
手撕:
- 链表相交节点
- 环形链表找到入口(讲了一下思路)
面试总结:
- 对于自己项目的地方,再多多讲几遍,脑子里的东西没有表达出来
- 对于自己项目中mysql表的设计
- 自我介绍再口语化一些
二面
项目拷打
- 实体设计是什么样子的? 单体
- 单机部署有什么问题啊? 水平扩展
- 水平扩展怎么增加容灾?怎么做水平扩展?
- 需要人工去切吗? 是
- 怎么去做路由?怎么去分流?怎么一个一个请求放到某一个进程上,或者说某一台机上去处理?负载均衡,轮询、随机和哈希
- 轮询、随机和哈希这几种有什么区别?我们在配置的时候应该用哪一种?
- 那什么时候用哈希? 需要会话一致性的时候
- 负责哪个模块
八股
- JVM担保机制 母鸡啊!!!!
- 第三次握手丢失,client端和server端是什么状态? 答的很混乱
- 幂等怎么实现 Token
- 还有其他方法吗? 乐观锁、唯一约束
- 什么是乐观锁?
- CAS 是怎么实现的? X86 的一个指令 lock cmpxchg
- lock cmpxchg这个指令为什么能实现原子性? 答了个内存屏障,
- CAS 可能会导致什么样的问题?
- CAS自旋有啥问题吗?
- b树和b+树的区别
- 底层的叶子结点是怎么链接的?
- b+树io开销小的本质区别是什么? 美团又被问了,不过问得更底层!!
手撕 平时什么数据结构用的比较多一点? 链表 ok,行,我们考一个非链表!!!!???????
- 二叉树的p、q的最近公祖先
- 拓展p、q、z的最近公共祖先 先找到p、q的最近公共祖先 r,再找r和z的最近公共祖先
- 还没有没其他更好的思路? 自底向上遍历计数
反思总结
- 关于项目的单体架构的容灾处理
- 关于一些分布式的问题和解决
- 网络那里答的不流畅
感觉这一面有一点像压力面,全程答的不是很流畅,中途说项目的时候也会被打断,手撕的时候给我整不会了,面完过后感觉要挂了,emo了好久,做中通笔试的时候接了个电话,说是过了,🙏
三面
项目拷打
八股
1. 次 HTTP 的请求,从客户端发起这个请求开始,到最终后端你返回数据。
这个中间主要它的一个大概的过程又又糊弄过去了,基本只说了服务端这边的封装;这里应该把服务端每一层的协议的封装,到达客户端的解封装和汇集讲清楚一些!!!
2. 对 netty 的理解吗?比如说 netty 是怎么去处理?
- reactor模型
3.IO 多路复用能大概深入讲下?
4.epoll怎么判断文件描述符就绪了?
- 这里糊弄过去了,水平触发和边缘触发,epoll_wait会返回就绪的文件描述符
5.netty用的select还是epoll?
6.为什么不用select?
7.内核态和用户态的区别?
手撕
一道图的手撕
面试反思
- IO多路复用的底层实现再熟悉一下,回答的不够顺畅
- os和网络还需要再加强
三面已过,许愿hr面🤧
bg 本双非化学 211硕 无实习
秋招面的第一家大厂
感谢字节不卡本科非科班学历
基本没收到其他家的面试
现在还有在面的就只有团子,志愿全被挂了,不过被捞了,许愿二面
不过base在北京,当时只是觉得能面一下就胜利了,不知道可不可以换base🥹
#秋招##字节##offer##后端校招##软件开发笔面经#