字节后端java二面面经
1 自我介绍,让挑一个项目介绍
2 策略模式、工厂模式、模板方法模式。优势和本质区别?不是问他们的写法区别,而是他们的本质区别,工厂模式也可以实现策略模板方法模式也能实现策略,为什么会有单独的策略模式?
3 DDD的优势,DDD的劣势,领域是怎么划分的?有没有看过别人的交易系统的领域是怎么划分的?
4 充血模型和贫血模型?他们谁对谁错,应用的区别?
5 redis持久化怎么使用?aof和rdb介绍一下?Redis集群怎么实现的?哨兵模式怎么实现?怎么选取新的主节点?Redis既然可以持久化,那为什么不用Redis来作为类似于MySQL这些数据库存储固定数据而且是只用来缓存?
6 说说G1和CMS区别?哪个更好?怎么标记垃圾?三色标记法详细说一下?三色标记法会不会存在一直是灰色的情况?怎么解决?
7 如果频繁Full GC怎么排查,可能是什么问题?如果是内存泄漏如何排查?
8 有没有碰到过包冲突?怎么解决?pom文件里怎么设置?
9 @Autowired和@Resource的区别,如果类型一样@Autowired会不会发生错误?一定会发生错误吗?是运行时错误还是编译时错误?
10 MySQL事务的ACID,分别怎么实现?可见性怎么控制?
11 MySQL索引用数据结构存储的?为什么用b+树? B加树的插入过程?可不可以一来直接插在非叶子节点?
12 算法题:要求找出树里面的从根节点出发的最小权值路径,不能用递归和栈,也不能全部遍历