一、思维导图
重点:JVM、多线程编程、数据结构算法、MySQL调优
必备:SSM、SpringBoot、SpringCloud
中间件:redis、zookeeper、RocketMQ、elasticsearch
JAVA程序员必备技能
计算机基础
数据结构
-
线性表
- 定义以及基本操作
- 顺序表示
- 链表表示
-
栈和队列
- 栈的概念,顺序,链式存储
- 队列顺序,链式存储
-
树与二叉树
- 树的基本概念性质
- 二叉树概念,存储结构
- 二叉排序树
- 平衡二叉树
- 哈夫曼树
-
图
- 概念性质
- 存储与基本操作
- 图的遍历应用,拓扑排序
-
查找
- 顺序查找
- 折半查找
- 分块查找
- B树与B+树
- 散列表,散列查找
- 串,基础结构,KMP
-
排序
-
插入排序
- 直接插入
- 折半插入
- 希尔排序
-
交换排序
- 冒泡排序
- 快速排序
-
选择排序
- 简单选择排序
- 堆排序
-
归并排序
-
基数排序
-
操作系统
-
进程管理
- 进程与线程
- 处理机调度
- 进程同步
- 死锁
-
内存管理
-
概念
- 连续分配
- 非连续分配
-
虚拟内存
- 分页管理方式
- 请求分页
- 页面置换
- 页面分配
-
-
文件管理
-
文件系统基础
- 目录结构、文件共享、文件保护
-
文件系统的实现
- 目录、文件
-
磁盘组织与管理
- 结构
- 调度算法
-
-
输入输出
- IO调度
- 高速缓存与缓冲区
计算机网络
-
传输层
- 7/4 TCP/IP模型
JAVA基础
JAVA核心技术
-
继承
- 类、超类、子类
- Object类
-
接口
- lambda表达式
- 内部类
-
异常/断言/日志
- 处理异常
- 使用断言
- 使用日志
-
泛型
- 泛型定义
- 限制与局限性
- 通配符
- 反射与泛型
-
集合
- 集合框架
- 链表、数组列表、散列集、树集、队列
- 映射
-
输入/输出
- 输入输出流
- 读写二进制
- 操作文件
-
网络
- 连接服务器
- 实现服务器
- Http客户端
-
数据库编程
- JDBC设计原理
- sql操作
并发编程
-
java内存模型
- 重排序
- 顺序一致性
- volatile内存语义
- 锁的内存语义
- final域的内存语义
-
线程
- 构造线程
- 线程通信
- 线程同步
-
JAVA中的锁
- Lock接口
- 队列同步器
- 重入锁
- 读写锁
- LockSupport
- Condition接口
-
并发容器与框架
- ConcurrentHashMap
- ConcurrentLinkedQueue
- 阻塞队列
- Fork/Join框架
-
13个原子操作操作类
-
并发工具类
- CountDownLatch
- CyclicBarrier
- Semaphore
- Exchanger
-
Executor
- Executor框架结构与成员
- ThreadPoolExecutor
- ScheduledThreadPoolExecutor
- FutureTask
JVM虚拟机(HotSpot)
-
java内存区域与内存溢出异常
-
运行时数据区域
- 程序计数器
- 虚拟机栈
- 本地方法栈
- 堆
- 方法区
- 运行时常量池
- 直接内存(不属于运行时数据区)
-
HotSpot对象的创建、内存布局、访问定位
-
内存溢出
- 堆溢出
- 栈溢出
- 方法区和运行时常量池溢出
- 直接内存溢出
-
-
垃圾收集器与内存回收
-
对象何时回收
- 引用计数算法
- 可达性分算法
-
垃圾收集算法
- 标记-清除算法
- 复制算法
- 标记整理算法
- 分代收集算法
-
垃圾收集器
- Serial收集器
- ParNew收集器
- Parallel Scavenge收集器
- Serial Old收集器
- Parallel Old收集器
- CMS收集器
- G1收集器
-
内存分配与回收策略
- 对象优先在Eden分配
- 大对象直接进入老年代
- 动态对象年龄判断
-
虚拟机监控与故障处理
- jps
- jstat
- jinfo
- jmap
- jhat
- jstack
- HSDIS
- JConsole
- VisualVM
-
类文件结构
- Class类文件结构
- 字节码指令
-
类加载机制
-
类加载过程
- 加载、验证、准备、解析、初始化
-
类加载器
-
-
数据库
MySQL
-
存储引擎
- MyIsam
- InnoDB
- Memory
-
数据类型
- 字符、日期…
-
索引设计
- 索引原理
- SQL命中
- 覆盖索引、聚簇索引
-
服务参数
-
内置表
- 执行计划
- 慢查询日志
-
锁机制
-
读写分离
-
分区分表
Oracle
中间件
缓存
-
Redis
- 五大数据类型
- RDB、AOF
- Redis集群搭建
- 哨兵机制
- 缓存穿透、雪崩、jedis、淘汰策略
消息队列
-
ActiveMQ
- 安装
- 消息发送
- 消息存储
- 消息消费
- 集群、主从同步
-
RabbitMQ
-
RocketMQ
-
Kafaka
搜索引擎
-
lucene
-
solr
-
elasticsearch
- 核心概念
- 环境搭建
- 查询api,javaapi
- ELK搭建
文件存储
- FastDfs
分布式任务调度
- zookeeper
开源框架
Spring
- IOC/AOP
- bean的加载、相关源码
SpringBoot
SpringCloud
-
配置中心
- Nacos
- consul
- zookeeper
-
注册中心
- nacos
- consul
- zookeeper
- eureka
-
熔断
- sentinel
- Hystrix
-
服务调用
- Feign
- OpenFeign
- Dubbo
-
服务路由
- zuul
- gateway
- dubbo+servlet
-
分布式消息
- RocketMQ
- kafka
-
消息总线
- bus
-
负载均衡
- LoadBalancer
- DubboLB
- Ribbon
Mybatis
算法
贪心算法
动态回话
回朔算法
分治
分支限界
Linux
常用命令
脚本编程
Hadoop生态
Hadoop
MapReduce
HIVE
Storm
DevOps
Tomcat
- 参数配置,调优
Nginx
- 参数配置,集群,调优
Netty
- 原理