Java基础
集合
List
ArrayList
LinkedList
Map
HashMap
数据结构
put/get原理
冲突
扩容
HashTable
Set
Spring
SpringBoot自动配置原理
SpringBean的生命周期或加载流程
Spring如何解决循环依赖
类加载机制
双亲委派模型
自定义类加载器
Spring-IOC
依赖注入
控制反转
Spring-AOP
JDK动态代理
CGLIB代理
数据库
数据库调优
SQL优化
数据库锁
锁的类型
锁所对应解决的事务问题
数据库事务
事务的隔离级别
没有事务可能会出现的问题
B+树索引原理
最左匹配原则
聚集索引/非聚集索引
多数据源怎么做
三范式
分布式
Dubbo
容错策略
失败自动重试,重试其他机器(默认)
失败定时重试,还是重试自己这台机器
快速失败,失败直接报错
失败安全,出现失败,直接忽略
并行调用所有提供者,只要一个成功,就返回成功
负载均衡策略
随机
轮询
最少活跃数
最短响应
一致性Hash
超时设置
加载流程/生命周期
SpringCloud
JVM
JVM内存结构模型
JVM参数配置
JVM线上调优
JVM调优工具
中间件
Redis
RocketMQ
GIT/SVN
代码分支管理方法
GIT常用命令
Linux
Linux常用命令
多线程
创建线程的几种方式
传统方式
继承Thread
实现Runable接口
线程池
线程的生命周期
sleep和wait的区别
notify和notifyAll的区别
等待池
锁池
如何确定线程数量
I/O密集型
CPU密集型
synchronized和lock的区别
线程池有哪些类型
FiexThreadPool
CachedThreadPool
SchedulerThreadPool
SingleThreadPool
线程池的核心参数有哪些
核心线程数
最大线程数
存活时间
存活时间单位
队列类型
拒绝策略
线程池的拒绝策略有哪些
Abort直接拒绝,并抛出异常
Caller调用线程直接执行
Discard直接拒绝,但不抛出异常
DiscardOldest丢弃阻塞队列中最老的一个,并加入最新的
阻塞队列有哪些
有界队列
Array数组类型,需指定大小
LinkedQueue有界,最大为Intege.MAX
LinkedDueue,双向链表,需指定大小
无界队列
同步移交队列
锁升级的流程状态
volatile
ConcurrentHashMap