前言
很多朋友在学习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架构,在控制台实现文件列表、搜索、上传、下载等功能 |
第三阶段 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架构实现酒店管理后台与前端 |
第五阶段 分布式 |
|||
序号 | 课程名称 | 内容简介 | 博客地址 |
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 |