Java中高级程序员全程学习路线图
第一阶段:基础部分
Java基础
-
基本语法
-
变量
-
运算符
-
流程控制语句
-
-
面向对象特性
-
属性、方法
-
构造器
-
封装
-
继承
-
多态
-
抽象类、接口
-
-
高级应用
-
异常处理
-
IO流
-
多线程
-
集合框架
-
反射机制
-
基础API
-
枚举、注解
-
MySQL基础
-
MySQL安装
-
基本的SELECT语句
-
多表查询
-
子查询
-
单行函数&组函数
-
DDL & DCL & DML
-
约束
JDBC
-
手动获取数据库连接
-
Statement 完成增、删、改
-
PreparedStatement 增、删、改、查
-
JDBC 事务
-
DBUtil
-
数据库连接池
第二阶段:网站前后台技术
前端基础
-
HMTL5和CSS
-
HTML基本使用
-
HTML DOM
-
HTML5 特性
-
CSS 选择器
-
常用样式
-
CSS3 特性
-
盒子模型与布局
-
-
JavaScript
-
JavaScript 概述
-
ECMAScript、DOM、BOM
-
嵌入 JS 三种方式以及 JS 的注释
-
标识符、关键字和变量
-
JS 数据类型
-
JS基本语法
-
JS 中的事件
-
JS 运算符之 void
-
JS 之控制语句
-
JS 内置对象
-
BOM 和 DOM 的区别与联系
-
DOM 编程案例
-
BOM 编程案例
-
WEB服务端
-
XML
-
XML 用途
-
XML 文档结构
-
XML 基本语法
-
DOM & SAX 解析方案
-
DOM4j 节点查询
-
DOM4j 文档操作
-
-
Tomcat
-
Tomcat 端口配置
-
Tomcat 服务器搭建
-
Tomcat 启动 & 停止
-
Tomcat & IntelliJ IDEA整合
-
-
HTTP协议
-
Http协议概述
-
请求报文
-
响应报文
-
后台三大组件
-
Servlet
-
系统结构概论
-
开发第一个 Servlet 程序
-
Servlet 对象生命周期
-
单实例多线程环境下运行
-
GenericServlet
-
HttpServlet
-
ServletConfig
-
ServletContext
-
HttpServletRequest
-
HttpServletResponse
-
web 开发中乱码的解决方案
-
转发与重定向
-
Servlet3.0 新特性
-
-
Filter
-
Filter 原理
-
Filter 生命周期
-
Filter 链
-
Filter 登录验证
-
Fiiter 事务控制
-
-
Listener
-
Listener 原理
-
八大监听器使用
-
Listener监听在线用户
-
会话控制
-
Cookie
-
Cookie简介
-
Cookie创建和获取
-
Cookie运行原理
-
Cookie修改+Cookie有效时间
-
Cookie有效路径+Cookie用途
-
-
Session
-
Session简介
-
Session创建和获取
-
Session运行原理
-
Session的空闲时间
-
Session的钝化和活化
-
Ajax & Json
-
Ajax 技术衍生
-
XMLHttpRequest使用
-
同步请求 & 异步请求
-
JSON语法
-
Java JSON 转换
-
JavaScript JSON 转换
-
jQuery 基本Ajax方法
-
底层$.ajax使用
-
网页实现异步更新 & 轻量级数据交换格式
文件上传和下载
-
文件上传
-
文件上传原理
-
Commons-IO& Commons-FileUpload
-
文件上传参数控制
-
文件上传路径浏览器兼容性解决
-
-
文件下载
-
文件下载响应头
-
文件下载中文乱码 & 浏览器
-
文件下载原理
-
Thymeleaf
-
Thymeleaf
-
Thymeleaf 在Springboot 中的配置
-
Thymeleaf 标准表达式语法
-
Thymeleaf 循环分支判断
-
Thymeleaf 页面引入介绍
-
Thymeleaf 超链接和js调用
-
Thymeleaf 其他功能介绍
-
ES6语法 & Vue.JS
-
VSCode安装与使用
-
ES6基础语法
- ES6模块化
-
Vue入门与提取代码片段
-
Vue数据渲染和指令
-
Vue双向数据绑定
-
Vue事件
-
Vue修饰符、条件渲染、列表渲染
-
Vue计算属性、侦听属性
-
Vue过滤器
-
Vue组件、指令(局部、全局)
-
Vue生命周期
-
第三阶段:经典框架
项目管理工具—Maven
-
Maven 环境搭建
-
Maven 构建和部署
-
本地仓库 & 中央仓库
-
maven 创建 web 工程
-
pom.xml、依赖管理
-
坐标、依赖、生命周期等
-
IntelliJ IDEA下的maven使用
-
继承 & 聚合
Java 轻量级应用框架—Spring 5
-
SpringIOC & DI 机制
-
Spring 配置式组件管理
-
Spring 注解式自动装配
-
Spring 表达式语言
-
SpringAOP & 动态代理
-
SpringJDBC 使用
-
Spring 声明式事物
-
Spring 单元测试
-
Spring 源码分析
Java 轻量级 web 开发框架—SpringMVC
-
SpringMVC概述与入门程序
-
详解@RequestMapping注解
-
REST介绍与操作
-
映射请求参数
-
处理模型数据
-
视图和视图解析器
-
REST CRUD操作
-
处理JSON数据
-
文件上传组件与原理
-
详解拦截器
-
SpringMVC异常处理
-
SpringMVC运行流程与源码解析
数据访问框架—MyBatis 3
-
MyBatis入门程序
-
MyBatis 配置& 查询数据
-
MyBatis全局配置文件
-
MyBatis 映射文件
-
关联查询,动态SQL
-
MyBatis缓存机制
-
MyBatis 逆向工程
-
MyBatis 运行原理、源码解析
-
MyBatis分页插件
SSM整合
-
整合前注意点
-
整合:思路、导包
-
SSM整合:Spring、SpingMVC、MyBatis
-
SSM整合练习
Linux
-
Linux入门概述
-
vmware安装
-
CentOS7安装
-
远程工具
-
Linux文件与目录结构
-
Linux 常用命令
-
VI&VIM编辑器
-
Linux用户与权限管理
-
rpm与yum
第四阶段:高级和前沿技术
-
版本控制:Git、Gitee、GitHub
-
Git 概述
-
Git 安装配置
-
Git 本地仓库搭建
-
Git 常用操作命令
-
Git本地库实战
-
使用 GitHub/Gitee
-
Git远程库实战
-
IntelliJ IDEA集成Git
-
Git工程流
-
-
Nginx
-
Nginx介绍与作用
-
Nginx安装
-
Nginx常用命令
-
Nginx配置详解
-
Nginx实现反向代理
-
Nginx实现负载均衡
-
Nginx实现动静分离
-
Nginx原理
-
Nginx参数配置优化
-
Nginx集群
-
-
RabbitMQ
-
消息中间件概述
-
安装及配置RabbitMQ
-
RabbitMQ入门
-
AMQP与RabbitMQ运转流程
-
RabbitMQ工作模式
-
Spring 整合RabbitMQ
-
RabbitMQ高级特性
-
RabbitMQ集成微服务
-
消息百分百成功投递
-
消息幂等性保障
-
RabbitMQ集群搭建
-
-
Docker
-
Docker简介与组件
-
Docker安装与启动
-
镜像相关命令
-
容器相关命令
-
MySQL部署
-
Tomcat部署
-
Nginx部署
-
Redis部署
-
迁移与备份
-
Dockerfile
-
Docker私有仓库
-
-
Redis 6
-
NoSQL & Redis 入门
-
应用场景
-
Redis/memcache/MongDB 对比
-
Redis 安装 & 启动
-
Redis 五大数据类型和基本操作命令
-
Redis 总体配置Redis.conf
-
Java 操作 Redis
-
Redis 持久化(RDB & AOF)
-
Redis 事务控制
-
主从模型搭建
-
哨兵集群搭建
-
Redis Cluster集群搭建
-
-
SpringBoot 2.4.x
-
Spring 分布式架构
-
SpringBoot 概述
-
SpringBoot优势
-
SpringBoot快速入门
-
SpringBoot配置文件详解
-
SpringBoot 自动配置与原理
-
SpringBoot启动器与原理
-
SpringBoot整合Junit
-
SpringBoot整合Druid数据源
-
SpringBoot集成业务层事务
-
SpringBoot整合Spring Data JPA
-
SpringBoot 整合Mybatis
-
SpringBoot整合Redis
-
SpringBoot整合定时任务
-
SpringBoot整合模板Thymeleaf
-
SpringBoot整合Web组件
-
SpringBoot的Admin组件
-
SpringBoot的Actuator组件
-
SpringBoot项目打包部署
-
-
SpringCloud
-
微服务理论
-
分布式概念
-
SpringCloud背景与版本
-
服务注册与发现: Eureka、Consul
-
Ribbon负载均衡
-
OpenFeign服务调用
-
Hystrix 服务限流、降级、熔断
-
Gateway服务网关
-
SpringCloud Sleuth链路追踪
-
Spring Cloud Alibaba
-
Nacos 注册、配置中心
-
Sentinel 服务熔断与流控
-
-
-
MyBatis-Plus
-
入门程序
-
主键策略和分布式id生成器
-
自动填充
-
乐观锁插件
-
分页插件
-
逻辑删除
-
性能分析插件
-
条件构造器
-
MP代码生成器
-
-
分布式事务
-
分布式事务介绍
-
微服务分布式事务问题
-
分布式事务系统架构
-
CAP定理
-
基于XA协议的两阶段提交(2PC)
-
代码补偿事务(TCC)
-
本地消息表(异步确保)- 事务最终一致性
-
MQ 事务消息
-
Seata框架
-
Seata原理
-
第五阶段:就业加薪课
MySQL高级
-
MySQL_rpm安装
-
用户与权限管理
-
杂项配置sql_mode
-
逻辑架构
-
数据结构以及时间复杂度
-
存储引擎简介
-
索引介绍
-
explain查看执行计划
-
explain_各字段解释
-
单表使用索引及常见索引失效
-
关联查询优化
-
子查询优化
-
排序、分组优化
-
覆盖索引优化
-
慢查询日志
-
View视图
-
主从复制
MyCat
-
作用与原理
-
安装启动
-
搭建读写分离
-
垂直拆分_分库
-
水平拆分_分表
-
E-R表
-
全局表
-
全局序列
JVM
-
JVM快速入门
-
类加载器ClassLoader
-
JVM结构划分详解
-
stack栈
-
堆体系
-
堆参数调优
-
OOM演示与解决
-
MAT工具的使用
-
IntelliJ IDEA分析dump文件
-
GC垃圾判定
-
垃圾回收算法
-
垃圾收集器
JUC
-
JUC概述
-
ReentrantLock可重入锁
-
ReentrantReadWriteLock读写锁
-
线程间通信、虚假唤醒
-
并发容器类
-
JUC辅助类CountDownLatch、CyclicBarrier、Semaphore
-
Callable接口
-
阻塞队列(BlockingQueue)
-
ThreadPool线程池
-
java内存模型(JMM)
-
volatile关键字
-
CAS
-
AQS源码解析
Zookeeper
-
Zookeeper简介
-
Zookeeper的安装配置
-
Znode数据模型
-
Znode节点类型
-
Zookeeper四字命令
-
Java客户端操作
-
Zookeeper 集群原理
-
Zookeeper集群搭建
Dubbo
-
Dubbo核心概念
-
Dubbo环境搭建
-
Dubbo入门程序
-
Dubbo配置
-
高可用解决方案
-
RPC原理
-
Dubbo原理框架设计
第十阶段:进阶(上)
(计算机科学的精华)
操作系统
-
进程、线程
-
进程 / 线程间通讯方式
-
进程调度算法
-
进程 / 线程状态
-
死锁
-
内存管理
计算机网络
-
HTTP / HTTPS 协议
-
网络模型
-
UDP / TCP 协议
-
网络安全
-
域名解析
计算机组成原理
-
系统概论
-
数据的表示、运算
-
CPU子系统
-
存储子系统
-
总线与IO子系统
数据结构
-
数组
-
链表
-
队列
-
栈
-
哈希表
-
树
-
二叉树
-
完全二叉树
-
平衡二叉树
-
二叉查找树(BST)
-
红黑树
-
B、B+、B*树
-
LSM树
-
-
图
算法
-
排序
-
双指针
-
查找
-
分治
-
动态规划
-
递归
-
回溯
-
贪心
-
位运算
-
DFS
-
BFS
第十阶段:进阶(下)
设计模式
-
设计模式六大原则
-
开闭原则:对扩展开放,对修改关闭,多使用抽象类和接口。
-
里氏替换原则:基类可以被子类替换,使用抽象类继承,不使用具体类继承。
-
依赖倒转原则:要依赖于抽象,不要依赖于具体,针对接口编程,不针对实现编程。
-
接口隔离原则:使用多个隔离的接口,比使用单个接口好,建立最小的接口。
-
迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用,通过中间类建立联系。
-
合成复用原则:尽量使用合成/聚合,而不是使用继承。
-
-
23种常见设计模式
-
创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程
-
单例模式
-
工厂方法模式
-
抽象工厂
-
建造者模式
-
原型模式
-
-
结构型模式:把类或对象结合在一起形成一个更大的结构
-
适配器模式
-
组合模式
-
装饰器模式
-
代理模式
-
享元模式
-
外观模式
-
桥接模式
-
-
行为型模式:类和对象如何交互,及划分责任和算法
-
迭代器模式
-
模板方法模式
-
策略模式
-
命令模式
-
状态模式
-
责任链模式
-
备忘录模式
-
观察者模式
-
访问者模式
-
中介者模式
-
解释器模式
-
-
-
应用场景
-
单例设计模式
-
集合框架中的迭代器设计就是迭代器设计模式
-
IO流中就是装饰者设计模式
-
Thread类和Runnable是代理模式
-
-
UML
架构设计
-
分布式
-
分布式理论
-
CAP
-
BASE
-
-
分布式缓存
-
Redis
-
Memcached
-
Etcd
-
-
一致性算法
-
Raft
-
一致性哈希
-
-
分布式事务
-
分布式 id 生成
-
分布式服务调用
-
分布式存储
-
分布式数据库
-
分布式文件系统
-
分布式协调
- Zookeeper
-
分布式监控
- Prometheus
-
分布式消息队列
-
RabbitMQ
-
Kafka
-
Apache Pulsar
-
-
分布式日志收集
-
Elastic Stack
-
Loki
-
-
分布式搜索引擎
- Elasticsearch
-
分布式链路追踪
- Apache SkyWalking
-
分布式配置中心
-
Apollo
-
Nacos
-
-
-
高可用
-
主从
-
异地多活
-
容灾备份
-
-
高并发
-
数据库
-
分库分表
-
读写分离
-
-
缓存
-
缓存雪崩
-
缓存击穿
-
缓存穿透
-
-
负载均衡
-
负载均衡算法
-
软硬件负载均衡(2、3、4、7 层)
-
-
-
云原生
-
K8S(Kubernetes)
-
架构
-
部署应用
-
暴露服务
-
动态扩缩容
-
-
-
其他
-
监控告警
-
领域驱动设计
-
应用安全
-
线上故障分析
-
服务网格
-
Serverless
-