Java基础
- Java内存模型
- 多态(重载重写)
- object方法
- 类访问权限
- sleep、notify、wait 联系、区别
- String、stringbuffer、stringbuilder 联系、区别、源码
- volatile 原理、源码、与syn区别
- 线程实现的三种方式(继承、Runnable、Callable)
- 线程间通信方式(wait/notify 、await/signal) :
- 线程的各种状态 : 线程的状态转换与Thread解析
集合框架
List
- ArrayList:ArrayList源码剖析
- LinkedList:LinkedList源码剖析
- Vector:Vector源码剖析
三者区别,联系,源码
Set
- HashSet
- LinkedHashSet
- TreeSet
基于什么实现,内部数据结构,适用场景,源码
Map
- HashMap:HashMap源码剖析
- weakHashMao
- LinkedHashMap
- TreeMap
HashMap与hashtable的区别
内部实现原理、源码、适用场景
并发包
ConcurrentHashMap
- 原理、源码、与hashmap的区别
- 彻头彻尾理解 ConcurrentHashMap
ReentantLock
- 与syn的区别、好处、场景
Condition
- 与wait、notify的区别、好处
Executors
- 线程池种类、各个作用、适用场景
ThreadPoolExecutor
- 重载方法的参数、各参数作用、源码
- Java线程池的理解和应用
CopyOnWriteArrayList (set)
- 什么情况加锁、什么情况不加锁、适用场景
ArrayblockingQueue (Linked)
- 两者区别,take、put、offer、poll方法原理、源码
AtomicInteger (long boolean)
- 功能
CountDownLatch
- 功能、场景
CyclicBarrier
- 功能、场景
Semaphore
- 好处、场景
FutureTask (Callable)
- 源码、场景
ReentrantReadWriteLock
- 读写分离的好处、适用场景、源码
JDK8
- Lamda表达式
- stream
虚拟机
JVM五大区
- 每个区的存储、作用
JVM内存模型
- 类加载机制:JVM类生命周期概述:加载时机与加载过程
- 双亲委派模型
垃圾收集器
- 常用gc算法
- 收集器种类、适用场景
- fullGC、MinorGC触发条件
JVM优化
- 日志查询
- 各项参数设置
- 四种引用
IO流
BIO
- 字节流:类型、适用场景
- 字符流:类型、适用场景
NIO
- 类型、适用场景
- 三大组件的联系、使用
- 内存情况
数据库
三范式 : 关系数据库的三大范式以及BCNF范式
主从复制
- 原理、实现
读写分离
- 原理、实现
事务
- 类型
- 使用
- 可能引起的问题
- 数据库事务的四大特性以及事务的隔离级别
数据库锁
MVCC
存储引擎
- InnoDB
- MyISAM
- 区别、联系、锁机制、适用场景
索引
- 类型
- 使用
- 什么样的字段适合做索引
- MySQL 数据库索引原理与分类
SQL优化
WEB
Tomcat
- 结构、流程、源码
- Tomcat的原理及架构
Servlet
- 生命周期
- 三种实现方式
springMVC
- 使用
- 请求流程
- Spring MVC 到底是如何工作的?
spring
- IOC/AOP 原理、源码、联系:Spring源码剖析——依赖注入实现原理
- 两种动态代理实现:代理模式(从静态代理到动态代理)
mybatis
- 使用
- #、$区别
- 一级、二级缓存
设计模式
- 单例模式
- 工厂模式
- 观察者模式
- 适配器模式
- 模版方法模式
- 策略模式
- 责任链模式
- 装饰者模式
- 常用的八种掌握就行,原理,使用
- 单例、工厂、观察者重点
数据结构
二叉树
- 平衡二叉树
- 二叉查找树
- 红黑树
- 完全二叉树
- 满二叉树
概念、适用场景、时间复杂度、好处坏处
B树
- B-Tree
- B+Tree
- B树、B+树、B*树和R树
两者的联系、区别、适用场景
算法
排序算法
- 直接插入排序
- 二分插入排序
- 希尔插入排序
- 冒泡排序
- 快排
- 选择排序
- 堆排序
- 归并排序
- 各种排序的思想
- 实现复杂度
- 稳定性如何
- 可以手写
动态规划
贪心算法
网络
TCP
- 三次握手、四次挥手、各种状态、状态改变
- 和UDP的区别
IO模型
- 同步、异步、阻塞、非阻塞概念
- 模型种类、各自特点、适用场景
- 如何使用
分布式
一致性算法
- 2PC
- 3PC
- Paxos
- Raft
分布式锁
- 数据库锁实现
- 缓存实现
- Zookeeper实现
中间件
- 缓存
- 消息队列
- Zookeeper
Linux基础
- 常用命令
- 管道符
- 查看日志相关命令
- CPU使用命令