文章有点长,请大家耐心看完,话不多说直接上干货!
一门永不过时的编程语言——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开发介绍
1\. DOS常用命令2\. JVM、JRE、JDK之间的关系3\. Java开发环境的搭建:安装JDK,配置环境变量4\. Java入门程序(Java的开发流程)5\. Java的注释,标识符、标识符的命名规范6\. Java基本数据类型7\. 变量和常量的定义及初始化8\. Java的运算符9\. 运算符的优先级10\. Java分支语句之if...else11\. 循环的嵌套12\. 方法的定义13\. 方法的形参和实参14\. 方法的压栈15\. 方法的递归调用
二:Java数组
1\. Java 数组的定义2\. Java 数组的声明3\. 数组的优势与局限4\. 数组的动态初始化5\. 数组的存储特点(堆和栈)6\. 数组的遍历访问(普通循环,增强for循环)7\. 数组元素的顺序查找8\. 数组元素的二分法查找9\. 数组元素的选择排序10\. 数组元素的冒泡法排序11\. Arrays工具类的使用12\. 二维数组的介绍13\. 二维数组的声明与初始化14\. 二维数组的遍历15\. 二维数组的使用
三:Java面向对象
1\. 面向对象设计思想2\. 面向对象的分析与设计3\. Java与面向对象4\. 类中成员变量的定义与意义5\. 构造方法的定义和调用6\. 面向对象的封装特性7\. 局部变量和成员变量的作用域问题8\. 静态属性、静态方法、静态代码块9\. 面向对象的继承特性10\. 继承中构造方法的细节11\. 面向对象的多态特性12\. 抽象方法与抽象类13\. 接口的介绍14\. 通过内部类制作性能检测工具15\. Java的内存分析
四:常用基础类
1\. 枚举类型介绍2\. 枚举的定义3\. 结合switch-case使用枚举4\. String字符串5\. 字符串缓冲区StringBuffer和StringBuilder6\. 字符串与缓冲区的区别7\. 基本类型的包装类型8\. Date类的使用9\. SimpleDateFormat类的使用10\. Math类的使用11\. Random类的使用12\. Runtime类的使用13\. System 类的使用14\. Calendar类的使用15\. Java8新特性
五:集合
1\. 集合的概念和作用2\. 集合和数组的区别3\. 集合框架体系介绍4\. 集合框架之Collection接口5\. 泛型的使用6\. ArrayList和LinkedList的方法使用7\. ArrayList和LinkedList各自的工作原理分析原理分析8\. Vector和Stack使用介绍9\. 使用多种方式遍历集合10\. 迭代器的使用和工作原理11\. HashSet和LinkedHashSet各自的工作原理分析12\. 集合框架之Map接口13\. TreeMap的方法使用和排序方式14\. 分析Set和Map之间的区别与联系15\. Collections工具类的使用
六:IO流
1\. File类的作用2\. File类中常用方法的使用介绍3\. 使用File类操作文件和文件夹4\. 相对路径和绝对路径的介绍5\. IO流的概念和工作原理6\. IO流的分类7\. 文件流的使用8\. 转换流的使用9\. 缓冲流的使用10\. 对象流的使用11\. 内存流的使用12\. 使用不同的流实现文件内容的拷贝13\. RandomAccessFile类的使用14\. Properties类的使用15\. 装饰者设计模式
七:多线程
1\. 进程和线程的介绍2\. 进程和线程之间的区别与联系3\. 线程实现方式之继承自Thread类4\. 线程实现方式之实现Runnable接口5\. 线程实现方式之线程池6\. 线程的生命周期7\. 线程中常用方法的使用8\. 多线程中的临界资源问题分析9\. 解决临界资源问题之同步代码块10\. 解决临界资源问题之同步方法11\. 解决临界资源问题之ReentrantLock12\. 多线程讲解和理解13\. 多线程在单例中的应用14\. 死锁介绍以及案例演示15\. 生产者与消费者设计模式
八:异常
1\. 异常的概念2\. 异常的分类3\. 异常的理解4\. 常见异常介绍5\. 运行时异常6\. 编译时异常7\. 运行和编译异常区别8\. 异常的处理方式之捕获异常9\. 异常的处理方式之抛出异常10\. 异常的处理方式之断点调试11\. 断点调试之引导运行步骤12\. 自定义异常13\. 异常关键字处理14\. 关键字执行流程15\. 异常总结
九:网络
1\. 计算机网络和网络编程2\. 网络编程与网页编程的区别3\. IP地址和端口号的介绍4\. 网络通信协议的介绍5\. InetAddress类的方法使用6\. Socket通信模型的介绍7\. 使用UDP实现数据的发送和接收8\. 使用TCP实现数据的发送和接收9\. 使用TCP实现文件的上传和下载10\. 使用TCP实现多人聊天11\. URL和URLConnection使用介绍12\. URLEncoder和URLDecoder的使用介绍13\. 基于HTTP协议访问网络资源14\. Json解析15\. 基于HTTP协议实现网络文件的下载
十:反射
1\. 反射机制的概念2\. 反射机制的作用3\. 反射机制的理解4\. Class类的使用5\. Class文件获取的三种方式6\. 获取Constructor对象7\. 获取私有Constructor对象8\. 获取Method对象9\. 获取私有Method对象10\. Constructor的使用11\. Method类的使用12\. Field类的使用13\. Modifier类的介绍14\. 反射使用练习15\. 反射机制在工厂设计模式中的应用
十一:MySQL使用
1\. 数据库简介2\. MySQL的安装与使用3\. MySQL客户端和服务器配置4\. 用户权限管理5\. DDL创建数据库和表6\. 约束与外键7\. DML实现添加、修改、删除数据8\. 聚合函数、日期函数等9\. DQL简单查询10\. 排序、分组、筛选11\. 多表查询12\. 子查询13\. in和exists关键字14\. 分页查询15\. Mysql SQL语句优化介绍
十二:JDBC连接池
1\. JDBC概述2\. JDBC使用步骤3\. Connection、Statement、ResultSet接口4\. 使用JDBC 完成数据库DML操作5\. PreparedStatement对象6\. 大数据的操作7\. 批量处理与元数据8\. 事务处理9\. 隔离级别10\. 自定义连接池11\. DBCP、C3p0连接池12\. DBUtis工具类13\. QueryRunner14\. 自定义结果集处理15\. 连接池知识总结
十三:Servlet
1\. Tomcat与Eclipse的集成开发2\. 什么是Servlet3\. Servlet的进化史4\. Servlet的优化过程5\. Servlet中应用的多线程概念6\. Servlet接收客户端请求信息7\. Servlet响应客户端信息8\. Servlet的生命周期9\. 重定向写法10\. 转发写法11\. 转发和重定向区别12\. HttpServletRequest获取中文乱码问题13\. HttpServletResponse响应中文乱码问题14\. Servlet路径映射问题15\. Servlet多路径映射
十四:JSP
1\. 什么是JSP2\. JSP的内置对象3\. 透析JSP的本质4\. JSTL+EL5\. MVC介绍6\. 分层的重要性7\. Web工程中事务实现8\. Session的使用9\. Cookie的使用10\. web工程中连接池的使用11\. 实现用户的自动登录12\. 文件的上传、下载13\. 过滤器、 监听器14\. 反射、注解、泛型15\. 综合案例练习
十五:AJAX
1\. Ajax技术背景2\. Ajax技术的理解3\. XMLHttpRequest使用步骤4\. XMLHttpRequest GET/POST的区别5\. 同步请求&异步请求6\. 同步请求&异步请求的区别7\. Ajax获取不同的返回值类型8\. Ajax使用原生JavaScript和Jquery的区别9\. Ajax响应状态处理10\. JSON语法11\. Java JSON 解析12\. Java JSON 生成13\. Java JSON 第三方工具快速解析14\. JavaScript JSON转换15\. Jquery JSON转换
十六:jQuery
1\. jQuery介绍2\. jQuery版本介绍3\. jQuery对象和原生js对象介绍4\. jQuery对象和原生js对象互相转化5\. jQuery快速入门6\. jQuery语法详解7\. jQuery核心函数8\. jQuery onload处理9\. jQuery选择器10\. jQuery 文档处理11\. jQuery事件12\. jQuery遍历操作13\. jQuery自定义函数14\. jQuery动画效果15\. jQueryAJAX操作
十七:Bootstrap
1\. Bootstrap介绍2\. Bootstrap开发环境搭建3\. Bootstrap的基本模板4\. Bootstrap快速入门5\. Bootstrap组成6\. 栅格系统7\. 利用栅格系统进行移动端页面适配8\. Bootstrap全局Css样式9\. Bootstrap修改原Css样式进行自定义10\. Bootstrap的js组件11\. Bootstrap的js组件样式修改12\. 集成Bootstrapjs插件之导航条13\. 集成Bootstrapjs插件之轮播图14\. 集成Bootstrapjs插件之弹出框15\. Bootstrap进行项目整合
Java框架
十八:Maven
1\. Maven环境搭建2\. Maven构建项目3\. Maven本地仓库配置4\. Maven中央仓库配置5\. Maven基本概念6\. Maven基本命令介绍7\. Maven于Eclipse整合8\. Maven于Idea整合9\. Maven创建web工程10\. pom.xml、依赖管理11\. 坐标、依赖、生命周期等12\. Eclipse下的Maven使用13\. Maven中 继承、聚合14\. Maven构建SSH/SSM应用15\. 自动部署、持续集成、持续部署
十九:Hibernate
1\. Hibernate框架介绍2\. Hibernate于其他框架和DBUtil工具类对比3\. ORM思想4\. Hibernate5与JPA关系介绍5\. Hibernate.cfg.xml配置6\. hbm.xml映射文件详解7\. 主键生成策略 PO对象三种状态分析与切换8\. Hibernate5一级缓存分析与测试9\. Hibernate5高级映射技术10\. 一对多映射11\. 多对多映射12\. Hibernate5多表联合查询13\. Hibernate5延迟加载14\. Hibernate5加载策略15\. 二级缓存
二十:Spring
1\. 框架原理介绍2\. 框架环境搭建3\. 快速入门4\. 创建Bean的方式及实现原理5\. Bean种类6\. Bean生命周期7\. Bean的作用域8\. Bean的注值方式9\. SpEL10\. 整合Junit测试11\. Web项目集成Spring12\. 注解装配Bean13\. AOP思想、原理解剖14\. 传统方式实现AOP开发15\. AspectJ介绍及实现AOP开发
二十一:Spring MVC
1\. Spring MVC 概述2\. 使用 @RequestMapping映射请求3\. 请求处理方法签名概述4\. 处理方法签名详细说明5\. 使用 HttpMessageConverter6\. 处理模型数据7\. 数据绑定流程剖析8\. 数据格式化9\. 数据校验10\. 视图和视图解析器11\. 处理方法的数据绑定12\. 视图和视图解析器13\. 文件上传下载14\. JSON处理15\. 拦截器
二十二:MyBatis
1\. MyBatis数据框架介绍2\. MyBatis对比Hibernate框架3\. MyBatis配置、查询数据4\. MyBatis全局配置文件5\. MyBatis全局配置文件元素详细介绍6\. Mapper映射文件7\. MyBatis两种开发方式8\. MyBatis中别名配置9\. MyBatis # 和 $ 拼接参数区别10\. 关联查询,动态sql11\. MyBatis缓存机制、整合ehcache12\. MyBatis二级缓存处理13\. MyBatis、Spring、SpringMVC整合14\. 分页插件15\. MyBatis逆向工程
二十三:WebService
1\. WebService简介2\. WebService主流框架3\. SOAP协议4\. WSDL讲解5\. JAX-WS6\. WebService与Spring整合7\. JAXB8\. JAX-RS9\. WebService各种调用方式10\. cxf的介绍11\. cxf+jaxws基本12\. cxf+jaxws+spring13\. cxf+JAX-RS基本14\. cxf+JAX-RS+spring15\. 综合案例
二十四:SVN
1\. SVN简介2\. SVN和Git对比3\. SVN服务器搭建4\. SVN创建仓库5\. SVN创建用户以及分配权限6\. SVN签出、提交、更新7\. Eclipse整合svn插件8\. Idea整合svn插件9\. 使用SVN更新提交10\. SVN仓库分析11\. SVN协同修改&冲突解决12\. SVN代码整合注意事项13\. SVN权限管理14\. SVN数据回滚15\. TortoiseSVN
二十五:Activiti
1\. 工作流介绍2\. 工作流引擎3\. 工作流使用步骤4\. BPMN2.0规范5\. Activiti5框架表结构6\. Activiti5核心组件&服务接口7\. Activiti5插件安装&整合Spring8\. 流程定义9\. 流程实例、任务、历史10\. 任务领取、流程变量11\. 排他网关、并行网关12\. 流程事件13\. 流程控制14\. 监听器15\. 简单整合shiro
Java + 云数据
二十六: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安装
二十七:FastDFS
1.FastDFS简介2.FastDFS单节点安装3.FastDFS Tracker和Storage节点操作4.FastDFS 配置Tracker服务器5.FastDFS 配置Storage服务器6.FastDFS JavaClient端 文件上传7.FastDFS JavaClient端 文件下载
二十八:MySQL优化
1.优化数据访问2.重构查询的方式3.查询缓存4.切分查询5.MySQL索引6.MySQL锁7.MySQL执行计划8.MySQL存储引擎9.Schema与数据类型优化
二十九:Nginx反向代理
1.Nginx反向代理介绍2.Nginx 下载和安装3.Nginx 编译和启动、访问4.在Linux下搭建Nginx集群5.在Windows搭建Nginx集群6.解决Session共享问题
三十:Quartz 作业调度
1.Quartz作业调度简介2.Quartz作业调度执行以及持久性3.Quartz基本使用4.Quartz核心类讲解5.Quartz Trigger 触发器6.Quartz Job&JobDetail7.Quartz Calendars日历讲解8.JobListener监听器和TriggerListener监听器9.Spring整合Quartz
三十一:Redis 高性能(Key-Value)数据库
1.NoSQL 发展史简介2.Redis 简介3.Redis 安装以及调试4.Redis 常用指令5.Redis 高级使用(主从复制、哨兵模式、持久化机制)6.Jedis的基本使用7.SSM框架基于Redis实现缓存8.Redis 连接单机版9.Redis 连接单机版使用连接池10.封装和整合Spring11.Redis 集群搭建
三十二:Shiro 安全(权限)框架
1.Shiro功能简介2.Shiro框架介绍3.ShiroFilter工作原理4.Shiro 身份认证5.Shiro Realm以及Authenticator6.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.什么是SolrCloud11.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消息队列