金三银四高频面试知识点,请查收

136 阅读4分钟

图片

做一个单纯的程序汪,分享干货,聊聊人生。

微信公众号:后端架构进阶

关注我发现更多的干货,微服务、Spring源码、JVM、SpringCloud Alibaba、K8S等。

如果你觉得本文对你有帮助,麻烦给我点个赞,感谢支持!

最近在准备面试,大大小小也面了有五六家了,把这几家遇到的问题做个总结。基本都是很高频的面试题,给大家做个参考,金三银四,你准备好了么?

一、消息队列MQ

消息队列老生常谈的问题了,这个是一定会涉及的,那么我遇到的都是些啥问题呢?

削峰填谷就不说了,幂等,数据不丢失,这是基本操作。

建议多看看比较主流的mq,比如:rocketmq、kafka、rabbitmq。知道原理和一些基本的差异。

kafka多提一嘴,为什么这么快,分片有啥好处。

自己在项目中都遇到哪些奇怪的问题?这个比较刁钻些,可以看出你到底有没有使用,遇到问题你自己怎么解决以及自己处理问题的能力。

二、MYSQL

mysql更多的是问一些优化手段,explain的分析,以及索引,innodb和myisam的差异。以及mvcc相关的一些内容。数据库的隔离级别,以及常见的一些高可用方案。死锁定位以及问题处理的方式。

三、REDIS

redis首先基础的一些数据类型,以及他们的一些使用场景,bitmap等的使用。缓存穿透、缓存雪崩以及热点缓存的使用方式都是必要的。

持久化的两种方式:RDB(快照)和AOF(追加),他们的使用场景以及都有啥优缺点是一定要会的。

常见的集群方案都有哪些?项目是怎么使用的,为什么选择这种也是需要知道的。

四、JVM调优

这个就是主要考察自己项目中的一些调优手段,举例说明下,无非就是减少STW(stop the world)的时间,然后垃圾收集器的选择,都有啥优缺点,各自适应的场景。

垃圾收集的过程,以及JVM内存模型是怎么分配的,动态年龄担保机制,还有就是一些基本参数的设置。

五、源码

提到源码,肯定绕不开的是spring的源码了,spring的bean的生命周期,一定会涉及。aop,事务的创建过程。以及spring的bean工厂和applicationcontext的区别,factorybean的作用。循环依赖的解决方案。还有各种扩展点,各种aware 和后置处理器。以及自己在项目中的使用方式。

还有就是mybatis了,xml写好sql语句后,如何加载的,sqlsessionfactory的作用,sqlsession的操作等等,各种一级二级缓存。

六、并发

synchronized和lock的区别。synchronized在1.6后做了哪些优化?锁升级,锁粗化,锁的消除。

synchronized的底层实现。mark word里面都有哪些信息等等。

七、分布式锁

zk和redis分布式锁分别实现方式。

zk实现分布式锁使用的是哪种数据结构,为什么选这种,watch机制是一次性使用还是可以多次。

redis如果不适用lua脚本如何实现事务性。redisson的看门狗机制等等。

八、项目部署方案

项目部署方案以及高并发下如何保证服务的高可用,数据库瓶颈如何突破,本地缓存和分布式缓存的优缺点。

当然以上是我遇到的比较高频的面试点,很多都是提出来给大家做个参考,还需要细细的去学习了解,包括在工作中多实践多使用。做到融会贯通,那么应对面试也就能灵活应对了。

预祝大家都能找到心仪的职位。

历史文章汇总:包含Netty、源码、并发、JVM等

总结

以上就是今日的内容总结和分享,感谢各位大佬的 点赞关注收藏

微信公众号:后端架构进阶

更多文章正在赶来,喜欢记得给我点个 👍 ,感谢支持!

公众号文章同步更新!关注我,不迷路!