One Piece ~ Java 学习路线图

前言

很多朋友在学习Java时,会发现虽然资源很多但是无法形成一个知识体系,让自己由点到面、由浅入深的对Java有个比较全面认识。

写这篇文章目的,就是列出了一个Java的路线图,带刚开始学习Java或需要复习Java的朋友进行系统的学习。

整个体系分为5个阶段:Java基础、Java进阶、JavaWeb、Java框架、分布式,通过这5个阶段的学习,大家能掌握到目前互联网企业所需要的主流技术点。

每个课程后面都有我的博文地址,由于刚开始整理,有的文章还没有写,后面写好了会不定时更新上去,争取完成一个完整的体系,我也会不断学习,对内容不断进行扩展和深化,也欢迎大家给出宝贵的建议。

学习方法方面给初学朋友的建议就是:

1、坚持,Java的知识点多,而且是一个体系,必须一步一步坚持下去

2、思考,每个知识点除了知道怎么用,还需要思考不用行不行、有没有其他办法、实现的原理等

3、练习,学习编程就是多敲代码,每篇博文都有案例、练习和作业,多动手学习起来才有效果

第一阶段 Java基础

序号 课程名称 内容简介 博客地址
1 Java的安装和配置 Java语言介绍 https://blog.csdn.net/u013343114/article/details/112212873
JDK安装
环境变量配置
HelloWorld
Java编译执行过程
Eclipse的使用
2 变量、标识符和类型转换 Java标识符的规则和规范 https://blog.csdn.net/u013343114/article/details/112217062
Java的关键字
变量的定义和使用
变量的数据类型
自动类型转换
强制类型转换
Scanner输入
3 Java的运算符 赋值运算符 https://blog.csdn.net/u013343114/article/details/112238345
算术运算符
关系运算符
逻辑运算符
三元运算符
4 分支语句 基本的 if https://blog.csdn.net/u013343114/article/details/112272131
if-else
多重if
嵌套if
switch
5 循环结构 for https://blog.csdn.net/u013343114/article/details/112275496
while
do-while
break和continue
嵌套循环
6 数组基础 数组简介 https://blog.csdn.net/u013343114/article/details/112308634
数组的定义
数组的初始化
foreach循环
Arrays工具
二维数组的使用
7 数组算法 求最大值 https://blog.csdn.net/u013343114/article/details/112314935
顺序查找
冒泡排序
选择排序
二分查找
8 方法 方法的概述 https://blog.csdn.net/u013343114/article/details/112461550
无参的方法
有参的方法
基本类型和引用类型参数的区别
方法的重载
带返回值的方法
可变参数
9 面向对象~类和对象 面向对象的概念 https://blog.csdn.net/u013343114/article/details/112345793
类和对象的概念
面向对象编程
属性和方法
构造方法
this关键字
面向对象的内存分配
10 面向对象~封装 封装的概念 https://blog.csdn.net/u013343114/article/details/112358966
访问修饰符
getter和setter方法
对象之间的通信
11 面向对象~继承 继承的相关概念 https://blog.csdn.net/u013343114/article/details/112463703
super关键字
继承中的构造方法
final关键字
抽象类
12 面向对象~多态 什么是多态 https://blog.csdn.net/u013343114/article/details/112506137
多态的作用
如何实现多态
Object类
equals和==的区别
向上向下转型
instanceof运算符
13 面向对象~static关键字和单例模式 静态属性 https://blog.csdn.net/u013343114/article/details/112509898
静态属性内存分析
静态方法
静态常量
静态导入
单例模式
14 面向对象~接口和内部类 接口是什么 https://blog.csdn.net/u013343114/article/details/112523663
接口的作用
接口的使用
接口和抽象类的区别
静态内部类
成员内部类
局部内部类
匿名内部类
15 Java常用类 String类 https://blog.csdn.net/u013343114/article/details/112599438
StringBuffer类和StringBuilder类
包装类
日期相关API
Math类
Random类
Runtime类
System类
16 集合 集合框架体系介绍 https://blog.csdn.net/u013343114/article/details/112602465
集合和数组的区别
Collection接口
List、Set、Map接口
ArrayList集合,数据结构和源码分析
LinkedList集合,数据结构和源码分析
HashMap集合,数据结构和源码分析
17 集合 Collections类 https://blog.csdn.net/u013343114/article/details/112614974
Comparable接口
Comparator接口
Lambda表达式
18 异常 Java的异常体系              https://blog.csdn.net/u013343114/article/details/112676142
异常的概念及分类
try-catch的基本用法
多重catch的用法
finally的基本用法
finally和return执行顺序
throw、throws的基本用法
自定义异常
19
 
IO
 
IO流的分类及体系结构
https://blog.csdn.net/u013343114/article/details/112779774
字节输入流
字节输出流
try with resource
字节缓冲流
打印流
字符流
字符缓冲流
数据流
装饰设计模式
https://blog.csdn.net/u013343114/article/details/112784750
序列化
https://blog.csdn.net/u013343114/article/details/112786964
20
 
网络编程 网络编程相关概念 https://blog.csdn.net/u013343114/article/details/112798898
HTTP协议
HTTP网络编程
TCP/IP协议 https://blog.csdn.net/u013343114/article/details/112800582
UDP协议
Socket编程
UDP编程
21 项目实战:亿度云盘(版本v1) C/S架构,在控制台实现文件列表、搜索、上传、下载等功能  
 

第二阶段 Java进阶

序号 课程名称 内容简介 博客地址
1 线程基础 进程、线程的概念介绍 https://blog.csdn.net/u013343114/article/details/111224268
线程的实现方式
Thread类的常用方法介绍
线程的启动和停止
线程的生命周期
线程的调度
2 线程池 线程池的作用 https://blog.csdn.net/u013343114/article/details/111224390
线程池相关API
Executors常用方法
线程池的配置
线程池的原理
3 线程同步 线程同步问题介绍 https://blog.csdn.net/u013343114/article/details/111224459
同步方法
同步代码块
同步锁
死锁问题
AtomicInteger原子类 https://blog.csdn.net/u013343114/article/details/111224517
volatile关键字
4 线程通信
生产者消费者模式
https://blog.csdn.net/u013343114/article/details/111224625
阻塞队列
5 XML解析和正则表达式 JSON介绍 https://blog.csdn.net/u013343114/article/details/112976901
JSON解析
XML介绍
XML解析
正则表达式 https://blog.csdn.net/u013343114/article/details/112977579
6 反射 反射机制 https://blog.csdn.net/u013343114/article/details/112980085
类加载机制
反射的API
获得Class的几种方式
反射调用构造器、方法和属性
反射实现JSON解析
7 MySQL基础 MySQL的安装 https://blog.csdn.net/u013343114/article/details/110475540
建库建表操作 https://blog.csdn.net/u013343114/article/details/110483099
DML
8 MySQL基本查询 select语句 https://blog.csdn.net/u013343114/article/details/110486364
where子句
in\between\like子句
order by 排序
limit分页
9 MySQL高级查询 外键约束 https://blog.csdn.net/u013343114/article/details/110489588
内连接
外连接
子查询
行转列 https://blog.csdn.net/u013343114/article/details/110490204
10 MySQL索引、视图、存储过程 索引的作用 https://blog.csdn.net/u013343114/article/details/110640134
索引的原理和数据结构
视图 https://blog.csdn.net/u013343114/article/details/110648385
存储过程 https://blog.csdn.net/u013343114/article/details/110649447
11 JDBC JDBC简介 https://blog.csdn.net/u013343114/article/details/112983307
JDBC API介绍
实现基本的CRUD
批处理
数据库连接池
反射编写数据库工具类
12 项目实战:亿度云盘 在云盘基础上添加:swing、JDBC、MySQL、反射、多线程等技术点  
 

第三阶段 JavaWeb

序号 课程名称 内容简介 博客地址
1 html HTML简介  
HTML基本结构
HTML基本标签
表单
表格
内嵌框架
2 css CSS简介  
CSS的语法
CSS的选择器
CSS的分类
CSS基本属性
盒子模型
DIV+CSS布局
3 javascript JS基本语法  
DOM编程
函数和事件处理
表单验证
正则表达式
常用类:Date、Math、String、Array
JS中的对象
BOM编程
6 Tomcat BS和CS结构  
主流服务器介绍
Tomcat的安装和配置
HTTP协议
GET和POST的区别
手写简单的服务器
7 Servlet Servlet介绍  
Servlet的定义
Servlet的配置
Servlet的生命周期
Servlet的方法参数
中文乱码的处理
Servlet线程安全
8 JSP JSP的介绍  
JSP的原理
JSP的指令
JSP的内置对象
页面跳转的方法
EL表达式
JSTL标签
9 上传下载 文件上传  
文件下载
10 会话跟踪 Cookie机制
Cookie的使用
Session原理
Session的使用
11 过滤器/监听器 过滤器原理  
过滤器生命周期
过滤器链
过滤器实现登录验证
监听器原理
监听器的使用
监听在线用户
12 JQuery Jquery选择器  
Jquery常用方法
事件处理
动画
13 Ajax Ajax原理  
XMLHttpRequest
JQuery的Ajax
Ajax实现用户名重复验证
14 Vue Vue入门 https://blog.csdn.net/u013343114/article/details/111307767
Vue基本指令 https://blog.csdn.net/u013343114/article/details/102746903
Vue-Cli的使用 https://blog.csdn.net/u013343114/article/details/111308078
Vue-Router的使用 https://blog.csdn.net/u013343114/article/details/111310109
14 项目实战:酒店管理系统 B/S架构实现酒店管理后台与前端  
 

第四阶段 JavaEE框架

序号 课程名称 内容简介 博客地址
1 Maven Maven介绍 https://blog.csdn.net/u013343114/article/details/111193714
什么是Maven
Maven的安装
Maven的仓库
Maven仓库的分类
Maven的配置
在IDEA配置Maven
Maven项目的结构
POM文件介绍
依赖管理
项目生命周期管理
继承和聚合
依赖冲突的调解
2 Git 版本控制 https://blog.csdn.net/u013343114/article/details/110927058
GIT的特点
GIT的工作流程
GIT使用方法
IDEA中配置GIT
3 Spring IOC Spring框架简介 https://blog.csdn.net/u013343114/article/details/111194463
Spring框架的组件
IOC概念
Spring IOC的XML的实现
Spring IOC的注解的实现
使用反射+注解实现IOC
IOC源码解析 https://blog.csdn.net/u013343114/article/details/111195142
4 Spring AOP AOP的相关概念 https://blog.csdn.net/u013343114/article/details/111194829
AOP在Spring中的实现
注解配置
AOP在项目中的应用
AOP实现日志收集
SpringAOP的实现原理 https://blog.csdn.net/u013343114/article/details/111194967
静态代理
JDK动态代理
Cglib动态代理
AOP源码解析 https://blog.csdn.net/u013343114/article/details/111221758
5 SpringMVC基础 MVC设计模式 https://blog.csdn.net/u013343114/article/details/111466886
MVC的执行流程
Struts2.0和SpringMVC的区别
SpringMVC执行流程
入门案例
处理参数
处理返回数据
SpringMVC的常用注解
页面跳转
简单的登录案例
6 SpringMVC高级
拦截器概念
https://blog.csdn.net/u013343114/article/details/111467099
拦截器的使用
文件上传
文件下载
前后端分离
RestFul
RESTFul风格的API
7 MyBatis基础 MyBatis简介 https://blog.csdn.net/u013343114/article/details/111467193
什么是ORM
MyBatis和Hibernate的区别
MyBatis的基本使用
MyBatis的查询
8 MyBatis高级 动态SQL https://blog.csdn.net/u013343114/article/details/111467277
if/where/set/trim/foreach标签
关联查询
collection实现一对多关联
association实现一对一关联
延迟加载
MyBatis两级缓存机制
MyBatis源码解析 https://blog.csdn.net/u013343114/article/details/111245302
手敲MyBatis https://blog.csdn.net/u013343114/article/details/111245615
9 SpringBoot SpringBoot简介 https://blog.csdn.net/u013343114/article/details/112915827
SpringBoot创建项目
SpringBoot的配置
https://blog.csdn.net/u013343114/article/details/112940825
SpringBoot整合MVC
SpringBoot整合MyBatis
https://blog.csdn.net/u013343114/article/details/112918343
SpringBoot配置拦截器
SpringBoot的配置原理
10 Shiro RBAC权限管理 https://blog.csdn.net/u013343114/article/details/111592137
Shiro介绍
Shiro入门
自定义Realm
密码加密加盐
SpringBoot+MyBatis+Shiro整合
RememberMe
11 Linux Linux的安装 https://blog.csdn.net/u013343114/article/details/110430568
Linux的常用命令 https://blog.csdn.net/u013343114/article/details/110431842
Linux的网络配置 https://blog.csdn.net/u013343114/article/details/110432336
JDK和Tomcat的安装 https://blog.csdn.net/u013343114/article/details/110433299
MySQL的安装 https://blog.csdn.net/u013343114/article/details/110434127
12 Nginx Nginx能做什么 https://blog.csdn.net/u013343114/article/details/112170264
正向/反向代理
Nginx的安装
Nginx+Vsftp搭建文件服务器
负载均衡概念
Nginx负载均衡
13 Docker 为什么要使用Docker

https://blog.csdn.net/u013343114/article/details/112170627

https://blog.csdn.net/u013343114/article/details/112179420

容器化
虚拟机和容器
Docker的架构
安装Docker
Docker的基本使用
Docker安装MySQL
在Docker上部署Springboot项目
14 Jenkins 持续集成/持续交付/持续部署 https://blog.csdn.net/u013343114/article/details/111841377
Jenkins安装
Jenkins的配置 https://blog.csdn.net/u013343114/article/details/111868141
Webhook配置
Jenkins自动部署SpringBoot项目
15 项目实战:OA项目 前后端分离架构SpringBoot+Vue+ElementUI https://edu.csdn.net/course/detail/31433

第五阶段 分布式

序号 课程名称 内容简介 博客地址
1 SpringCloud Eureka 为什么使用微服务 https://edu.csdn.net/course/detail/31451
为什么使用注册中心
Eureka注册中心使用
Eureka的自我保护机制
Eureka的安全配置
Eureka的集群配置
2 SpringCloud Ribbon 负载均衡
服务器端负载均衡和客户端负载均衡
Ribbon负载均衡策略
RestTemplate的用法
3 SpringCloud Hystrix 服务可用性
服务雪崩问题
Hystrix的使用
Hystrix的隔离模式
4 SpringCloud Feign Feign是什么
Feign怎么用
Feign处理各种参数
Feign原理
Feign优化
5 SpringCloud Zuul 服务网关的作用
Zuul介绍
Zuul的基本使用
Zuul的路由规则
Zuul的过滤器
Zuul限流
Zuul超时优化
6 SpringCloud Config Config的介绍
Config的基本使用
动态更新配置
7 Elasticsearch Elasticsearch介绍  
Elasticsearch的安装
Kibana安装
安装分词器
SprngBoot整合Elasticsearch
ElasticsearchRepository操作索引
查询操作
8 RabbitMQ 消息队列  
消息队列的优缺点
主流的消息队列
RabbitMQ的安装
RabbitMQ的几种消息队列模式
SpringBoot整合RabbitMQ
9 Redis Redis简介  
Redis安装和使用
Redis的数据类型
事务
SpringBoot整合Redis
声明式缓存
缓存穿透、击穿、雪崩
淘汰策略
持久化策略
10 微信支付 支付流程  
实现微信支付接入
微信平台通知后台
11 JWT单点登录 RSA加密算法  
JWT
单点登录实现流程
解决cookie写入失败的问题
15 项目实战:微服务电商项目 SpringBoot+SpringCloud+RabbitMQ+ES+Redis  

猜你喜欢

转载自blog.csdn.net/u013343114/article/details/112553046