八股大纲
一、Java基础
1. 并发
- 创建线程
- 继承Thread,重写run()方法
- 实现Runnable(Thread)
- 实现Callable(FutureTask)
- 线程池
-
核心参数
-
核心线程数
-
最大线程数
-
最大睡眠时间
-
时间单位
-
线程工厂
-
阻塞队列
-
为什么用阻塞队列?
-
阻塞队列的类型
- ArrayBlockingQueue
- LinkedBlockingQueue
- JDK1.6 版本:增加
SynchronousQueue
,一个不存储元素的阻塞队列。 - JDK1.7 版本:增加
TransferQueue
,一个支持更多操作的阻塞队列。 - JDK1.8 版本:增加
DelayQueue
,一个支持延迟获取元素的阻塞队列
-
-
拒绝策略
- 线程池满了之后抛异常
- 线程池满了之后拒绝但不抛异常
- 线程池满了之后丢掉阻塞队列中最老的任务,将新任务放入阻塞队列
- 线程池满了之后,提交任务的线程来执行线程
-
-
配置线程池核心参数
-
线程池优点
- 锁
- syncronized
- Lock
- ReentryLock
2. IO
用户态、内核态交互
- BIO
- NIO
- AIO
3. 反射、注解
4. 集合类
5. JVM
- 类加载机制
- JVM模型
二、Spring & Spring Boot
1. IoC/DI
- IoC容器
- Spring Bean
-
注册组件方式:
注解:@Bean;@Component、@Service ...
-
获取组件方式
注解:@resource、@autowired
-
作用域
-
生命周期
- 创建实例
- 属性赋值/填充
- Bean初始化
- 销毁Bean
-
Spring 三级缓存
2. AOP
- 种类
-
运行时增强:SpringAOP
- JDK Proxy
- Cglib
- 编译时增强:AspectJ
- 术语
- 切入点(Pointcut)
- 切面(Aspect)
- 通知(Advice)
- 通知类型
- Before
- After
- Arround
- After Returning
- After Throwing
3. 声明式事务
- 事务传播级别
- 事务回滚方式
- 事务失效
4. SpringCloudGateway
5. 常用注解
三、MySQL
1. 索引
2. 事务
四、Redis
1. 数据结构
2. 数据同步策略
3. 三大应用问题
- 缓存穿透:
- 缓存击穿: 热key过期,大量请求访问数据库——redisson加锁、双检
- 缓存雪崩
4. 分布式锁
5.内存淘汰策略、持久化策略
五、MQ
六、 设计模式
单例模式
责任链模式
策略模式
代理模式
工厂模式