第一场面试 面试的感受,整体上题目还是比较基础的,可能因为是一面,也或者我投的岗位层级不够,所以问的题目深度不是很够。
即使这样,自我感觉有些题目回答的还不是很好,我的回答也缺乏深度。
spring
- aop的原理
《Spring设计思想》AOP设计基本原理 - 嵌套的aop方法是否会生效
确实没想过这个问题,其实是不会的,具体原理参考这篇文章
mysql
- mysql索引的结构
B+树 - 索引为什么使用B+树呢
Mysql索引为啥用B+树 - 用hash是否可以?为什么
简单来说,hash查找单key效率高,但是不适合范围查询
线程池
- 线程池的原理
- 核心线程数和最大线程数
分布式中间件
- 数据一致性
基本是消息表+队列,保证发送的动作的事务性,这个问题网上方案很多。 - 消息队列的顺序性怎么保证的
锁?控制顺序读写
kafka的顺序写入?
这个问题回答的不好,可以参考这个文章:深度剖析 Kafka/RocketMQ 顺序消息的一些坑 - dubbo,客户端反馈超时,服务端load很高,来分析下可能的原因
- netty,超过out channel buffer的水位
- tcp,zero window或者silly window
- 客户端 fullgc stw
- 客户端 死锁(这个没有想到)
redis
- 数据过期删除和淘汰机制
Redis的过期策略及内存淘汰机制 - 节点数据迁移 渐进式rehash
虚拟机
- 常用哪些jvm指令
JVM监控和调优常用命令工具总结
引申
- java动态代理机制
- spring事务的传播机制
- 聚集索引和非聚集索引
- LRU、2K、LFU算法
- hash槽和一致性hash
- 死锁问题怎么定位
- 线程池核心线程数的合理设置