字节暑期后端实习一二三面经(排序挂)
笔试题
- [[0222.完全二叉树的节点个数]]
- [[0152. 乘积最大子数组]]
二面
- [[0662.二叉树最大宽度]]
三面
- [[剑指offer26.树的子结构]]
八股
一面(1h15min)
1. Spring的IOC如何实现的,讲讲代码层面
- 细问Bean的生命周期
- BeanDefinition的数据结构,存放于哪里
2. Spring的AOP概念与实现方式
- 细问CGlib是怎么实现的?
3. MySQL和Redis的区别
4. 细问B+树,和B树的区别
5. 细问乐观锁
- mysql如何实现乐观锁,
- 乐观锁和悲观锁的区别
6. Java的双亲委派机制
7. 网络的七层网络概念
8. 线程与进程之间的关系
1. 进程调度抢占的机制(不会,没展开讲)
9. 仔细讲讲死锁,死锁的成立条件有哪些。(我是结合了一些例子讲)
10. 分布式原理中的CAP概念与原理(没看过不会)
11. java 中`==`与equals的区别
二面(1h20min)
1. JVM内存结构
1. 我详细说了方法区的概念,包括1.6 1.7 1.8的变化
2. 有没有看过字节码文件,常量区是怎么分布的? (说的不太好
3. 又问了Java的类加载机制,双亲委派机制,
1. 双亲委派机制能不能被打破
4. 垃圾回收算法
1. 讲了三色标记法
2. 对比了CMS 和G1 的区别
5. Redis 击穿、穿透、雪崩的区别与解决方案
6. Spring Bean的生命周期,一面也问了
1. BeanFactory 和FactoryBean的区别
7. 发生Redis雪崩情况,导致MySQL的CPU使用率达到100%,如何恢复。(场景题 没懂)
1. 后期问了面试官答案,先把流量停了,通过接口降级之类的,然后再解决热点数据雪崩的问题。
1. 给MySQL限流
2. 使用异步任务逐步重建缓存
3. 给缓存预热,预先加载一些高频访问数据到缓存
三面(50min)
35min项目+15min 代码
整个过程都在问我项目,深挖
1. 深挖了我项目,关于支付流程,以及项目中的设计模式架构。
2. 消息队列RabbitMQ 和RocketMQ 对比,为什么选RabbitMQ
1. 什么是零拷贝 ?
#软件开发笔面经##牛客创作赏金赛#