废话不多,直接进入正题
一.Java基础
1.基本类型 (精度问题 BigDecimal)
2.集合类
① list ArrayList 扩容机制
② set Hashset 底层实现 其实是hashMap
③ map map各种实现的区别 hashmap put操作 扩容机制 hash冲突的解决方式 concurrentHashMap 1.8前后的实现方式的区别
3.反射,io,nio,aio, netty
4.封装 继承 多态 (一定要有自己的理解,能解释清楚,以及自己在项目里如何使用的)
5. hash (hash冲突的解决方式 hashmap使用的那种,Redis使用的那种)
6.抽象类(abstract) 接口(interface)区别 为什么要有这两种
7. 线程和进程(自己可以解释清楚)
①Java线程和操作系统线程之间的关系
②runnable callable futureTask之间的区别
③fork join用处 如何使用
④countDownLatch CyclicBarrier用处 如何使用
⑤线程之间 通信 同步
8. 泛型 上限 下限
9. 基类Object类,涉及的方法
10. 设计模式
① 单例 优缺点 实现方式(懒汉 饿汉 双检索 static 枚举)双检索的volatile的作用(这里是防止语义重排序)synchronized 为什么用这俩
② 工厂 三种 优缺点
11. 多线程
① 线程池 七个参数(CorePoolSize MaxPoolSize 数值和CPU核数相关 和任务类型相关 但是我觉得maxPoolSize这个参数是2倍CPU核数 不科学,任务类型也不可能特别明确)原理 4种拒绝策略 workQueue类型 JDK提供的线程池 Spring提供的线程池 另外一个ForkJoinPool 实现CompletableFuture
② 单点锁 synchronized 保证线程同步 底层实现Monitor 保证原子性 锁升级过程(无锁 轻量级 自旋 重量级锁)可重入锁
volatile 保证对象在多线程的可见性 以及防止语义重排序 不保证原子性 和synchronized区别
lock 和 AQS 都是类 基于这个类 可以自定义锁
threadLocal 保证数据隔离 底层是ThreadLocalMap 使用set方法 绑定数据到线程
inheritableThreadLocal 父子线程使用
ReentrantLock Lock子类 可重入锁 可重入与不可重入区别 和 synchronized 区别
③ 分布式锁 Redis zookeeper 锁区别 优缺点
12. jdk jre sdk 各个jdk区别
13.JVM
① 分区,各区存储内容
② jvm参数
③minor GC 和 Full GC 触发机制
④堆内存分区
⑤类加载顺序 在JVM的流转顺序 类加载器 类加载时机
⑥类初始化的顺序 (做题时候会遇到) 父类静态代码块 子类静态代码块 这两块只加载一次 父类非静态代码块 子类非静态代码块 父类构造函数 子类构造函数
⑦JVM各区oom原因 以及如何避免
⑧jvm为对象在堆上分配空间的方式 指针碰撞 空闲列表
⑨双亲委派模型
⑩年轻代 老年代 对象
11. 强软弱虚引用 GC算法 GC回收器 ZGC11jdk以后
14. 过滤器 拦截器区别
二、数据库
1.关系型 非关系型 底层数据结构
2.MySQL底层存储结构
3.MySQL 引擎 各个引擎 数据结构 优缺点
4. explain
5. mvcc 版本链 log种类 用途
6. 索引 类别 创建的原则 使索引不生效的SQL 索引不是越多越好
7. SQL语句 执行顺序
8. MySQL事务特性 隔离级别 带来的问题 锁
9. 读取方式 隐式加锁 显式加锁 实时读 快照读
10. 回表操作 聚簇索引 非聚簇索引
三 缓存
1. 为什么要有缓存
2. Redis 数据结构
3. Redis 部署方式
4. 缓存穿透 缓存击穿 缓存雪崩
5. 内存淘汰策略
6. Redis MySQL同步
springboot 启动过程 自动装配原理 和普通的jar包的区别
Spring IOC aop
aop 用法 实现 几个相关的关键词 通知类型
bean作用域
bean的生命周期
factoryBean BeanFaactory
BeanFactory ApplicationContext
单例模式如何保证线程安全
如何解决循环依赖
事务传播机制 自定义bean
SpringMVC 流程 DispatcherServlet
mybatis hibernate 区别
一级缓存 二级缓存
Nginx location属性的优先级顺序
minio fastdfs
cas单点登录的流程 client server Authentication 三个端
JWT 三个部分 优缺点 token机制
设计模式 遵守的原则
kafka 原理 如何保证消息不漏发 不重发 消费顺序 再平衡
分布式事务 cap Base理论 解决方案
数据结构
树 红黑树 B+树 排序 查找 时间复杂度
Linux 命令
get post 区别
负载均衡算法 限流算法 实现
手写LRU 布隆过滤器
Git merge rebase
springcloud feign rpc调用协议 实现原理 和dubbo的区别
服务注册 服务发现 原理
优缺点
项目优化 code DB cache assyn multi-thread distribute JVM
项目瓶颈