java 学习路线
- 第一阶段:Java基础课程
- 第二阶段:JavaWeb课程
- 第三阶段:Java框架课程
- 第四阶段:Java + 云数据课程
- 第一部分:Linux版本
- 第二部分:FastDFS
- 第三部分:MySQL优化
- 第四部分:Nginx反向代理
- 第五部分:Quartz 作业调度
- 第六部分:Redis 高性能(Key-Value)数据库
- 第七部分:Shiro 安全(权限)框架
- 第八部分:Lucene&Solr全文检索
- 第九部分:Zookeeper 分布式系统
- 第十部分:MyCAT 大数据集群
- 第十一部分:Dubbo实现分布式架构
- 第十二部分:ActiveMQ 消息队列
- 第十三部分:分布式事务和单点登录
- 第十四部分:分布式框架原理(采用视频资料教学)
- 第十五部分:基于SpringMVC的集成单元测试MockMVC
- 第十六部分:SpringBoot 快速构建JavaEE项目
一门永不过时的编程语言——Java 编程开发。
Java编程语言占比:
据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!
Java工程师人才缺口:
根据IDC的统计数字:就2017年来说,我国Java人才的缺口已达42.5万,并且以每年20%左右 的速度增长。在未来5年内,合格软件人才的需求将远大于供给。
Java工程师就业:
1.通过各大招聘网站统计,全国海量公司都在招聘Java开发工程师2.北京Java开发工程师平均薪资,即18530元3.全国Java开发薪资前三:北京 上海 广州
第一阶段:Java基础课程
Java基础课程内容涉及:Java开发介绍、Java数组、Java面向对象、常用基础类、集合、IO流、多线程、异常、网络、反射。
第一部分:Java开发介绍
-
DOS常用命令
-
JVM、JRE、JDK之间的关系
-
Java开发环境的搭建:安装JDK,配置环境变量
-
Java入门程序(Java的开发流程)
-
Java的注释,标识符、标识符的命名规范
-
Java基本数据类型
-
变量和常量的定义及初始化
-
Java的运算符
-
运算符的优先级
-
Java分支语句之if…else
-
循环的嵌套
-
方法的定义
-
方法的形参和实参
-
方法的压栈
-
方法的递归调用
第二部分:Java数组
-
Java 数组的定义
-
Java 数组的声明
-
数组的优势与局限
-
数组的动态初始化
-
数组的存储特点(堆和栈)
-
数组的遍历访问(普通循环,增强for循环)
-
数组元素的顺序查找
-
数组元素的二分法查找
-
数组元素的选择排序
-
数组元素的冒泡法排序
-
Arrays工具类的使用
-
二维数组的介绍
-
二维数组的声明与初始化
-
二维数组的遍历
-
二维数组的使用
第三部分:Java面向对象
-
面向对象设计思想
-
面向对象的分析与设计
-
Java与面向对象
-
类中成员变量的定义与意义
-
构造方法的定义和调用
-
面向对象的封装特性
-
局部变量和成员变量的作用域问题
-
静态属性、静态方法、静态代码块
-
面向对象的继承特性
-
继承中构造方法的细节
-
面向对象的多态特性
-
抽象方法与抽象类
-
接口的介绍
-
通过内部类制作性能检测工具
-
Java的内存分析
第四部分:常用基础类
-
枚举类型介绍
-
枚举的定义
-
结合switch-case使用枚举
-
String字符串
-
字符串缓冲区StringBuffer和StringBuilder
-
字符串与缓冲区的区别
-
基本类型的包装类型
-
Date类的使用
-
SimpleDateFormat类的使用
-
Math类的使用
-
Random类的使用
-
Runtime类的使用
-
System 类的使用
-
Calendar类的使用
-
Java8新特性
第五部分:集合
-
集合的概念和作用
-
集合和数组的区别
-
集合框架体系介绍
-
集合框架之Collection接口
-
泛型的使用
-
ArrayList和LinkedList的方法使用
-
ArrayList和LinkedList各自的工作原理分析原理分析
-
Vector和Stack使用介绍
-
使用多种方式遍历集合
-
迭代器的使用和工作原理
-
HashSet和LinkedHashSet各自的工作原理分析
-
集合框架之Map接口
-
TreeMap的方法使用和排序方式
-
分析Set和Map之间的区别与联系
-
Collections工具类的使用
第六部分:IO流
-
File类的作用
-
File类中常用方法的使用介绍
-
使用File类操作文件和文件夹
-
相对路径和绝对路径的介绍
-
IO流的概念和工作原理
-
IO流的分类
-
文件流的使用
-
转换流的使用
-
缓冲流的使用
-
对象流的使用
-
内存流的使用
-
使用不同的流实现文件内容的拷贝
-
RandomAccessFile类的使用
-
Properties类的使用
-
装饰者设计模式
第七部分:多线程
-
进程和线程的介绍
-
进程和线程之间的区别与联系
-
线程实现方式之继承自Thread类
-
线程实现方式之实现Runnable接口
-
线程实现方式之线程池
-
线程的生命周期
-
线程中常用方法的使用
-
多线程中的临界资源问题分析
-
解决临界资源问题之同步代码块
-
解决临界资源问题之同步方法
-
解决临界资源问题之ReentrantLock
-
多线程讲解和理解
-
多线程在单例中的应用
-
死锁介绍以及案例演示
-
生产者与消费者设计模式
第八部分:异常
-
异常的概念
-
异常的分类
-
异常的理解
-
常见异常介绍
-
运行时异常
-
编译时异常
-
运行和编译异常区别
-
异常的处理方式之捕获异常
-
异常的处理方式之抛出异常
-
异常的处理方式之断点调试
-
断点调试之引导运行步骤
-
自定义异常
-
异常关键字处理
-
关键字执行流程
-
异常总结
第九部分:网络
-
计算机网络和网络编程
-
网络编程与网页编程的区别
-
IP地址和端口号的介绍
-
网络通信协议的介绍
-
InetAddress类的方法使用
-
Socket通信模型的介绍
-
使用UDP实现数据的发送和接收
-
使用TCP实现数据的发送和接收
-
使用TCP实现文件的上传和下载
-
使用TCP实现多人聊天
-
URL和URLConnection使用介绍
-
URLEncoder和URLDecoder的使用介绍
-
基于HTTP协议访问网络资源
-
Json解析
-
基于HTTP协议实现网络文件的下载
第十部分:反射
-
反射机制的概念
-
反射机制的作用
-
反射机制的理解
-
Class类的使用
-
Class文件获取的三种方式
-
获取Constructor对象
-
获取私有Constructor对象
-
获取Method对象
-
获取私有Method对象
-
Constructor的使用
-
Method类的使用
-
Field类的使用
-
Modifier类的介绍
-
反射使用练习
-
反射机制在工厂设计模式中的应用
第二阶段:JavaWeb课程
JavaWeb课程内容涉及:HTML5课程、CSS3、JavaScript、MySQL使用、JDBC连接池、Servlet、JSP、AJAX、jQuery、Bootstrap。
第一部分:HTML5
-
html概述
-
html基本标签
-
图片标签
-
超链接标签
-
表格标签
-
无序列表标签
-
有序列表标签
-
定义列表标签
-
div标签
-
语义化标签
-
表单标签
-
语义化表单元素
-
框架标签
-
特殊字符
-
综合案例
第二部分:CSS3
-
CSS3简介和用途
-
CSS3书写规范
-
CSS3基本语法
-
CSS3三种使用方式
-
标签选择器
-
Id选择器
-
Class选择器
-
属性选择器
-
层次选择器
-
文字、文本属性
-
背景、列表属性
-
尺寸、显示、轮廓属性
-
浮动、定位属性
-
盒子模型
-
CSS3高级属性
第三部分:JavaScript
-
JavaScript概述
-
JavaScript发展史
-
JavaScript组成
-
数据类型
-
运算符
-
分支语句
-
循环语句
-
系统函数、自定义函数、匿名函数
-
常见事件
-
数组、字符串、日期对象
-
正则表达式
-
BOM对象:window、history、location
-
DOM概念
-
DOM操作:创建、修改内容、删除
-
Css样式操作
第四部分:MySQL使用
-
数据库简介
-
MySQL的安装与使用
-
MySQL客户端和服务器配置
-
用户权限管理
-
DDL创建数据库和表
-
约束与外键
-
DML实现添加、修改、删除数据
-
聚合函数、日期函数等
-
DQL简单查询
-
排序、分组、筛选
-
多表查询
-
子查询
-
in和exists关键字
-
分页查询
-
Mysql SQL语句优化介绍
第五部分:JDBC连接池
-
JDBC概述
-
JDBC使用步骤
-
Connection、Statement、ResultSet接口
-
使用JDBC 完成数据库DML操作
-
PreparedStatement对象
-
大数据的操作
-
批量处理与元数据
-
事务处理
-
隔离级别
-
自定义连接池
-
DBCP、C3p0连接池
-
DBUtis工具类
-
QueryRunner
-
自定义结果集处理
-
连接池知识总结
第六部分:Servlet
-
Tomcat与Eclipse的集成开发
-
什么是Servlet
-
Servlet的进化史
-
Servlet的优化过程
-
Servlet中应用的多线程概念
-
Servlet接收客户端请求信息
-
Servlet响应客户端信息
-
Servlet的生命周期
-
重定向写法
-
转发写法
-
转发和重定向区别
-
HttpServletRequest获取中文乱码问题
-
HttpServletResponse响应中文乱码问题
-
Servlet路径映射问题
-
Servlet多路径映射
第七部分:JSP
-
什么是JSP
-
JSP的内置对象
-
透析JSP的本质
-
JSTL+EL
-
MVC介绍
-
分层的重要性
-
Web工程中事务实现
-
Session的使用
-
Cookie的使用
-
web工程中连接池的使用
-
实现用户的自动登录
-
文件的上传、下载
-
过滤器、 监听器
-
反射、注解、泛型
-
综合案例练习
第八部分:AJAX
-
Ajax技术背景
-
Ajax技术的理解
-
XMLHttpRequest使用步骤
-
XMLHttpRequest GET/POST的区别
-
同步请求&异步请求
-
同步请求&异步请求的区别
-
Ajax获取不同的返回值类型
-
Ajax使用原生JavaScript和Jquery的区别
-
Ajax响应状态处理
-
JSON语法
-
Java JSON 解析
-
Java JSON 生成
-
Java JSON 第三方工具快速解析
-
JavaScript JSON转换
-
Jquery JSON转换
第九部分:jQuery
-
jQuery介绍
-
jQuery版本介绍
-
jQuery对象和原生js对象介绍
-
jQuery对象和原生js对象互相转化
-
jQuery快速入门
-
jQuery语法详解
-
jQuery核心函数
-
jQuery onload处理
-
jQuery选择器
-
jQuery 文档处理
-
jQuery事件
-
jQuery遍历操作
-
jQuery自定义函数
-
jQuery动画效果
-
jQueryAJAX操作
第十部分:Bootstrap
-
Bootstrap介绍
-
Bootstrap开发环境搭建
-
Bootstrap的基本模板
-
Bootstrap快速入门
-
Bootstrap组成
-
栅格系统
-
利用栅格系统进行移动端页面适配
-
Bootstrap全局Css样式
-
Bootstrap修改原Css样式进行自定义
-
Bootstrap的js组件
-
Bootstrap的js组件样式修改
-
集成Bootstrapjs插件之导航条
-
集成Bootstrapjs插件之轮播图
-
集成Bootstrapjs插件之弹出框
-
Bootstrap进行项目整合
第三阶段:Java框架课程
Java框架课程内容涉及:Maven、Hibernate、Spring、Spring MVC、MyBatis、WebService、SVN、Activiti。
第一部分:Maven
-
Maven环境搭建
-
Maven构建项目
-
Maven本地仓库配置
-
Maven中央仓库配置
-
Maven基本概念
-
Maven基本命令介绍
-
Maven于Eclipse整合
-
Maven于Idea整合
-
Maven创建web工程
-
pom.xml、依赖管理
-
坐标、依赖、生命周期等
-
Eclipse下的Maven使用
-
Maven中 继承、聚合
-
Maven构建SSH/SSM应用
-
自动部署、持续集成、持续部署
第二部分:Hibernate
-
Hibernate框架介绍
-
Hibernate于其他框架和DBUtil工具类对比
-
ORM思想
-
Hibernate5与JPA关系介绍
-
Hibernate.cfg.xml配置
-
hbm.xml映射文件详解
-
主键生成策略 PO对象三种状态分析与切换
-
Hibernate5一级缓存分析与测试
-
Hibernate5高级映射技术
-
一对多映射
-
多对多映射
-
Hibernate5多表联合查询
-
Hibernate5延迟加载
-
Hibernate5加载策略
-
二级缓存
第三部分:Spring
-
框架原理介绍
-
框架环境搭建
-
快速入门
-
创建Bean的方式及实现原理
-
Bean种类
-
Bean生命周期
-
Bean的作用域
-
Bean的注值方式
-
SpEL
-
整合Junit测试
-
Web项目集成Spring
-
注解装配Bean
-
AOP思想、原理解剖
-
传统方式实现AOP开发
-
AspectJ介绍及实现AOP开发
第四部分:Spring MVC
-
Spring MVC 概述
-
使用 @RequestMapping映射请求
-
请求处理方法签名概述
-
处理方法签名详细说明
-
使用 HttpMessageConverter
-
处理模型数据
-
数据绑定流程剖析
-
数据格式化
-
数据校验
-
视图和视图解析器
-
处理方法的数据绑定
-
视图和视图解析器
-
文件上传下载
-
JSON处理
-
拦截器
第五部分:MyBatis
-
MyBatis数据框架介绍
-
MyBatis对比Hibernate框架
-
MyBatis配置、查询数据
-
MyBatis全局配置文件
-
MyBatis全局配置文件元素详细介绍
-
Mapper映射文件
-
MyBatis两种开发方式
-
MyBatis中别名配置
-
MyBatis # 和 $ 拼接参数区别
-
关联查询,动态sql
-
MyBatis缓存机制、整合ehcache
-
MyBatis二级缓存处理
-
MyBatis、Spring、SpringMVC整合
-
分页插件
-
MyBatis逆向工程
第六部分:WebService
-
WebService简介
-
WebService主流框架
-
SOAP协议
-
WSDL讲解
-
JAX-WS
-
WebService与Spring整合
-
JAXB
-
JAX-RS
-
WebService各种调用方式
-
cxf的介绍
-
cxf+jaxws基本
-
cxf+jaxws+spring
-
cxf+JAX-RS基本
-
cxf+JAX-RS+spring
-
综合案例
第七部分:SVN
-
SVN简介
-
SVN和Git对比
-
SVN服务器搭建
-
SVN创建仓库
-
SVN创建用户以及分配权限
-
SVN签出、提交、更新
-
Eclipse整合svn插件
-
Idea整合svn插件
-
使用SVN更新提交
-
SVN仓库分析
-
SVN协同修改&冲突解决
-
SVN代码整合注意事项
-
SVN权限管理
-
SVN数据回滚
-
TortoiseSVN
第八部分:Activiti
-
工作流介绍
-
工作流引擎
-
工作流使用步骤
-
BPMN2.0规范
-
Activiti5框架表结构
-
Activiti5核心组件&服务接口
-
Activiti5插件安装&整合Spring
-
流程定义
-
流程实例、任务、历史
-
任务领取、流程变量
-
排他网关、并行网关
-
流程事件
-
流程控制
-
监听器
-
简单整合shiro
第四阶段:Java + 云数据课程
Java + 云数据课程主要涉及的内容包含:Linux、FastDFS、MySQL优化、Nginx反向代理、Quartz 作业调度、Redis 高性能(Key-Value)数据库、Shiro 安全(权限)框架、Lucene&Solr全文检索、Zookeeper 分布式系统、MyCAT 大数据集群、Dubbo实现分布式架构、ActiveMQ 消息队列、分布式事务和单点登录、分布式框架原理(采用视频资料教学)、基于SpringMVC的集成单元测试MockMVC、SpringBoot 快速构建JavaEE项目。
第一部分:Linux版本
1.Linux简介和安装
2.Linux和Windows的区别
3.Linux远程登录
4.Linux常用命令
5.Linux文件管理
6.Linux用户管理
7.Linux用户组管理
8.Linux磁盘管理
9.Linux系统管理
10.Linux常用文件
11.Linux JDK安装
12.Linux Tomcat安装
13.Linux MySQL安装
2
第二部分:FastDFS
1.FastDFS简介
2.FastDFS单节点安装
3.FastDFS Tracker和Storage节点操作
4.FastDFS 配置Tracker服务器
5.FastDFS 配置Storage服务器
6.FastDFS JavaClient端 文件上传
7.FastDFS JavaClient端 文件下载
3
第三部分:MySQL优化
1.优化数据访问
2.重构查询的方式
3.查询缓存
4.切分查询
5.MySQL索引
6.MySQL锁
7.MySQL执行计划
8.MySQL存储引擎
9.Schema与数据类型优化
4
第四部分:Nginx反向代理
1.Nginx反向代理介绍
2.Nginx 下载和安装
3.Nginx 编译和启动、访问
4.在Linux下搭建Nginx集群
5.在Windows搭建Nginx集群
6.解决Session共享问题
5
第五部分:Quartz 作业调度
1.Quartz作业调度简介
2.Quartz作业调度执行以及持久性
3.Quartz基本使用
4.Quartz核心类讲解
5.Quartz Trigger 触发器
6.Quartz Job&JobDetail
7.Quartz Calendars日历讲解
8.JobListener监听器和TriggerListener监听器
9.Spring整合Quartz
6
第六部分:Redis 高性能(Key-Value)数据库
1.NoSQL 发展史简介
2.Redis 简介
3.Redis 安装以及调试
4.Redis 常用指令
5.Redis 高级使用(主从复制、哨兵模式、持久化机制)
6.Jedis的基本使用
7.SSM框架基于Redis实现缓存
8.Redis 连接单机版
9.Redis 连接单机版使用连接池
10.封装和整合Spring
11.Redis 集群搭建
第七部分:Shiro 安全(权限)框架
1.Shiro功能简介
2.Shiro框架介绍
3.ShiroFilter工作原理
4.Shiro 身份认证
5.Shiro Realm以及Authenticator
6.Shiro拦截器和Permissions(授权)
7.Shiro 自定义拦截器
8.Shiro Session会话
9.Shiro RememberMe功能
10.SSM集成Shiro综合权限菜单
第八部分:Lucene&Solr全文检索
1.Lucene 搜索引擎介绍
2.Lucene 中文分词器配置
3.Lucene 索引的维护包括创建、删除、修改操作
4.Lucene Query 各种查询方法
5.Lucene 高亮显示
6.Lucene Facet分面检索
7.Solr简介
8.Solr 安装和配置
9.Solr 索引库管理
10.什么是SolrCloud
11.Solr集群的系统架构
12.将搜索功能切换到集群版
第九部分:Zookeeper 分布式系统
1.Zookeeper 简介
2.Zookeeper 特点
3.Zookeeper 安装和配置
4.Zookeeper数据类型
5.Zookeeper服务中操作
6.Zookeeper Wacth触发器
7.Zookeeper分布式应用
第十部分:MyCAT 大数据集群
1.MyCat 简介
2.MyCat的下载和安装
3.MyCat分片配置
4.MyCat分片使用和测试
5.MyCat读写分离
6.MyCat 实现从MySQL主从复制
第十一部分:Dubbo实现分布式架构
1.Dubbo简介
2.单一应用框架
3.垂直应用框架
4.分布式应用框架
5.流动计算机架构
6.Dubbo 能做什么
7.Dubbo 实现原理
8.Dubbo 分布式集群模型
9.Dubbo管理控制台安装
10.Dubbo 集成 SSM
第十二部分:ActiveMQ 消息队列
1.ActiveMQ简介
2.JMS简介
3.MQ 消息中间件
4.ActiveMQ 安装和使用
5.ActiveMQ 消息过滤
6.ActiveMQ 消息发布和订阅模式
7.ActiveMQ消息持久化
8.ActiveMQ与Spring 整合
第十三部分:分布式事务和单点登录
1.阶段提交协议讲解
2.使用消息队列来避免分布式事务
3.如何可靠保存凭证
4.业务与消息解耦方式
5.如何解决消息重复投递的问题
6.什么是单点登录
7.单点登录技术的实现机制
第十四部分:分布式框架原理(采用视频资料教学)
1.传统垂直mvc项目
2.垂直架构的缺点
3.RPC架构
4.RPC架构的核心技术点
5.RPC架构的问题
6.SOA服务化架构
7.框架设计原理
8.框架性能、可靠性、功能
9.协议栈(通信模型、协议消息定义、安全性设计)
10.服务路由
11.集群容错
第十五部分:基于SpringMVC的集成单元测试MockMVC
1.Mock测试框架的介绍
2.SpringMVC Mock 配置的步骤
3.基于SpringMVC单元测试实战案例
4.基于SpringMVC+JPA单元测试实战案例
第十六部分:SpringBoot 快速构建JavaEE项目
1.基于SpringBoot 的thymeleaf 模板引擎
2.基于SpringBoot 多模块实战开发
3.基于SpringBoot 文件上传
4.基于SpringBoot Data Solr搜索引擎开发
5.基于SpringBoot Email邮件发送
6.基于SpringBoot 的Redis实战开发
7.基于SpringBoot 的WebSocket实战开发
8.基于SpringBoot 的ActiveMQ消息队列