自我介绍问为什么没去实习项目是实验室和企业的合作项目 我是java主开发项目遇到什么难点?不够难,有遇到什么更难的吗?根据项目引入八股1. JVM (碎碎念我基础八股背过,但调优没实践过,所以简历里刻意没写jvm,下午面了两家都被开局jvm糊脸了)垃圾回收器有哪些你们项目用的什么 -答G1为什么不用CMS和ZGC?用的老年代回收器是什么?如果我线上一个服务频繁触发FullGC,你该怎么办?你说查堆内存,指令是什么,用什么工具?2. MQ用的哪个消息队列 -RabbitMQ为什么不用RocketMQ和Kafka?RabbitMQ底层消息怎么持久化的?3. Redis为什么项目里用到redis,有什么用?为什么需要分布式锁?没有锁会带来什么问题?你说数据安全问题,会有什么问题?我想听的不是这个,就两个业务同时执行会有什么问题?为什么要用redisson的锁,不直接用基础redis?你说锁超时,锁超时会有什么问题?你说看门狗,怎么实现的?除了大家都知道的setnx,redisson底层实现还用到什么原语?两个进程申请锁,他们是会被通知吗?一致性哈希知道吗?4. MySQL有哪些引擎,用的什么引擎?区别是什么?查询一条SQL,内部的过程是什么?问索引相关。为什么用B+树不用二叉树、B树?三大日志知道吗?区别是什么?undolog会被清理吗?数据库碎片知道吗,怎么清理?页分裂知道吗?5. 分布式RPC调用知道吗?什么是SPI?分布式事务知道吗?知道哪些分布式事务算法?场景:如果我要上线一个服务,目标是1wQPS,怎么才能确保它达到1wQPS? - 答上线前前测试、上线后监控、做冗余、逐步放流量上压力你这些方案都不能确保1wQPS,我想知道的是怎么才能确保1wQPS?算法“最后来道简单的题吧” SQL题:有5个以上学生的课程最后“感谢你的时间”来点强度低薪资高的厂带我走吧😭 #面经#