自我介绍
问为什么没去实习
项目是实验室和企业的合作项目 我是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个以上学生的课程
最后
“感谢你的时间”
来点强度低薪资高的厂带我走吧
#面经#