字节活水面经

一面(55min)
1. 实习相关
2. Redis实现分布式锁(Lua脚本,什么数据结构,kv是什么)
3. 接上一个,如果服务宕机之后,锁不释放怎么办?
4. 如何保证重复操作幂等性
5. 时间轮算法
6. 如果主从库同步过程中宕机了,怎么办?
7. 限流算法(滑动窗口、令牌桶、漏桶)介绍一下
8. 固定窗口和滑动窗口相比有什么问题,在实际场景下有什么问题
9. 令牌桶、漏桶之间的区别
10. RocketMq事务消息
11. es深度分页
12. 线程池工作流程、拒绝策略
13. ConcurrentHashMap、HashMap、HashTable区别
14. ConcurrentHashMap里面的Node,Node里面有一个变量叫next,next用了什么修饰
15. 重写equals不重写hashcode有什么问题
16. java异常机制,Exception下面细分了什么?
17. GC年轻代回收的过程
18. Redis数据类型
19. Zset有什么特点
20. Zset里面能实现score排序,怎么做到的?
21. 描述跳表结构
22. b+树结构
23. 索引失效情况
24. Innodb、MyISAM区别
25. 怎么判断索引失效?
26. http和https区别
27. TLS握手过程
28. https传输过程用的对称加密还是非对称加密,为什么?

活水一面是我从5月份找实习到现在面过最汗流浃背的,实习那块,把我简历上字节实习写的每一个点都问了一遍(我简历上字节实习起码写了6个点),第一段实习也问了两个点,真汗流浃背了,本以为实习问完就差不多了,又开始了八股拷打,全程没写算法,一直在问,当时真想来道算法过渡一下让我歇会
这次面完发现自己平时可能比较注重一些设计相关的,基础有点忘了,后面还是要重新看看基础

二面(30min)
二面的话就讲了在字节实习做过的需求,背景、具体实现等等,几个需求讲完就差不多了,聊了会天,30min结束

总体流程还是挺快的,一天一面,之前还以为活水会简单一些,真没想到,狠狠拷打,后面应该去新部门继续实习了
其实原部门也很好,mt和同事他们对我都很好,主要是之前发offer的时候跟我说我只能实习到年底,所以我就提前找别的,等我活水过了之后(还没告诉我ld),我ld就跟我说年后还可以继续在他们这实习,但是后面考虑了下还是去活水的部门看看,接触点别的业务

更新
ld在北京出差今天还特地给我打了电话说想挽留我一下
重新考虑了一下,重新规划了学习路线,还是继续待在原部门吧,希望后面能学到更多
全部评论
活水到哪个部门了呢
4 回复 分享
发布于 2024-12-18 11:30 浙江
一面真猛,汗流浃背
1 回复 分享
发布于 01-26 17:01 福建
tql
1 回复 分享
发布于 01-14 14:00 天津
怎么这么难?
1 回复 分享
发布于 2024-12-22 15:34 四川
佬,商业化不香嘛?活水到哪儿了
1 回复 分享
发布于 2024-12-18 08:04 北京
活水是线下吗
点赞 回复 分享
发布于 04-22 11:37 浙江
大佬带带啊,看得我惊心动魄
点赞 回复 分享
发布于 2024-12-17 23:41 浙江

相关推荐

2025.4.2 下午三点开始面试,时长大约55分钟。2025.4.3 下午四点多一面挂的邮件就已经发来。本人是个菜鸡,正在为找暑期实习而努力。记录一下自己的第二场面试,也是第一个大厂面试。前面直接给我问懵了,中间有一会感觉大脑缺氧,晕晕的。面试官总体来说还行,但是我回答完问题就只是嗯,也不多说。1.自我介绍#牛客AI配图神器#2.首先问了项目是练习项目吗?回答:是学习练手项目;又问:从头开始做的吗?回答:从头开始做的。3.项目为什么选择微服务,是怎么拆分的回答:(这块没准备)只说了微服务后期好扩展,且不同微服务之间解耦。(这时候脑子已经乱了)具体如何拆分微服务的,我回答的是微服务分为对外接口层api、应用层、领域业务层、基础设施层、调用别的微服务接口的rpc层。这真是给后面埋了大雷。4.项目开发过程中的难点和亮点巴拉巴拉乱说一通,但是没忘记说项目的亮点,说了好几个项目的亮点,可能面试官不兴趣,后面就问了我说的在项目中用到了一些设计模式的亮点....5.如何和其他服务交互回答了api层封装接口、rpc层调用其他服务6.RPC基于什么实现回答:rpc是微服务中的其中一层,如果要调用其他服务的,经过 nacos 注册中心借助 Feign 可以实现调用别的微服务中的接口。。7.追问了 Feign 如何实现的回答:把项目中一个微服务调用另一个微服务的实现说了下追问:底层如何实现的回答:网络协议和数据序列化(没看过这个,随便说了俩)8.feign的协议和序列化是用的什么?直接抱歉,不会9.项目部署了吗?回答:在自己实验室电脑上的linux环境接著jenkins自动部署,只能内网访问。把jenkins部署流程简单说了一下10.你提到项目中用到了设计模式,具体如何实现的?把项目中用到的的工厂-策略模式、适配器模式都说了项目阶段回答的太烂了,就开始问八股了。11.java的哈希结构有哪些?回答:hashmap、concurrentHashMap、linkedhashmap、hashtable(直说了这些,其他的回答不上来了)12.hashmap的底层,红黑树查询和插入效率回答:基于数组、链表/红黑树实现,还说了链表转红黑树的时机;面试完回想当时好像说的是O(n),脑子想的是O(logn),说成了O(n)13.hashmap和hashtable的区别回答:hashmap不是线程安全的、hashtable是线程安全的14.hashtable线程安全怎么实现回答:使用synchronized实现15.ConcurrentHashMap实现线程安全?回答:回答了 jdk1.7和1.8分别怎么实现的16.乐观锁与悲观锁,分别的应用场景回答:乐观锁和悲观锁回答出来了,但是应用场景说反了17.synchronized和lock区别回答:说了synchronized基于jvm的监视器锁机制,巴拉巴拉;而reentrantlock使用lock显示的获取锁。18.lock和unlock底层怎么实现回答:只记得判断state的状态来获取和释放锁,具体如何不知道19.JVM的GC算法回答:最开始回答了垃圾回收器,过一会才反应过来,20.什么情况下触发GC回答:说主要是因为内存不足,然后System.gc()方法,其他的不记得了21.讲讲spring的IOC回答:控制反转,把bean交给spring管理,解耦,方便维护和测试。依赖DI实现22.依赖注入怎么实现回答:静态、实力工厂、构造器、setter方法。(注解注入忘记了,没有说)23.Spring事务注解@Transaction的底层实现回答:只说了使用AOP和事务拦截器,替代传统的编程式事务(其他的不知道了,直接抱歉)24.mysql的默认隔离级别回答:read-committed,读已提交25.read-committed是什么意思回答:回答成了一个线程只能读取其他线程已提交的数据(哎,事务说成线程了)26.其他的隔离级别以及解决了什么问题回答:回答了其他的几个隔离级别对应解决的问题27.如何实现可重复读回答:这个忘记了,随便说了一个MVCC28.MVCC如何实现回答:版本号,读取数据快照29.算法(没成功运行):单链表奇数节点递增偶数节点递减,重排后使之升序,回答一下思路。在纸上画了一下,过一会有了思路:把原链表拆分成两条链表,奇数节点链表和偶数节点链表,然后反转偶数节点链表,这时候就是合并两条有序链表。面试官让我实现一下代码写完之后,在合并代码那报空指针异常,检查了一下这个合并方法,问题不出在这,估计是前面的拆分链表的时候写错了。但是没检查出来哪里写错了。面试官说时间快到了,让我下去再看看。反问:通过这场面试,您觉得我应该往哪方面改进?面试官反问,你觉得你前面的问题哪些没答好我说了一些前面没回答好的问题面试官说要了解框架、和一些技术的底层原理,不能只会用#面经java#
点赞 评论 收藏
分享
评论
17
118
分享

创作者周榜

更多
牛客网
牛客企业服务