八股大纲

5 阅读2分钟

八股大纲

一、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

  • 作用域

  • 生命周期

    1. 创建实例
    2. 属性赋值/填充
    3. Bean初始化
    4. 销毁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

六、 设计模式

单例模式

责任链模式

策略模式

代理模式

工厂模式