Java高级开发工程师就业班

120个学习日(6个月),每天的课程安排

高洛峰

发布时间:2021-05-21

课程安排说明:

Java高级开发工程师就业班分为五个阶段,分别是夯实基础、初识JavaWeb、企业级框架、微服务 + 分布式 + 架构思维、最后一个阶段安排入职企业实习。这是融职教育历经多年的培训经验总结出来的, 而且每个阶段都有对应的项目案例。 同样的课程有两种学习方式, 一种是”面授“进班学习,这种学习模式特别适合零基础的小白学习成长。 面授班进度统一,完全按照课程安排进行授课,每天4个小时授课,安排8个小时练习, 作业、笔记、练习、测试、学习资源下载等全部在自主研发的学习系统上完成,为自己的成长记录留痕。 另一种模式是”坐班“的学习模式,按照规定的时间上下班,在自己的工位上在学习系统上学习,课程内容和面授班是同步的,技术总监身边指导答疑解惑。 这种模式适合有基础或学习效率高的学员,最快可以一天完成两关的内容,6个月的课程,最快三个月毕业,当然也可以两天完成一关的内容。

阶段一:夯实基础

掌握JAVA基本语法,常用工具类,集合(List,Set,Map),IO流,网络编程,多线程,注解反射等。学完这些内容,是我们作为后续高级课程学习的基础。一些控制台程序均可以独立完成。

模块

章节

知识点

JAVA基础

JAVA环境搭建

   java语言发展史

   计算机基础知识:二进制,字节,八进制,十六进制,cmd,dos指令

   JDK的下载和安装:JDK8Window10,mac

   PATH环境变量的配置:javahome

   第一个java程序HelloWorld:nodepade编写,讲解注意事项

   doc命令编译、运行java程序

   安装eclipse

   eclipse中创建java工程

   eclipse替换原版本

   案例:eclipse中编写自动关机程序

JAVA基础语法

   JAVA的注释

   常量与变量的概念

   变量的语法:数据类型(int,String,double),变量名(关键字,标识符),变量值

   扩展数据类型:数据类型分类等

   接收用户输入:变量的作用域

   算术、赋值(自增,自减)、关系、逻辑,赋值,三目运算符

   字符串连接符

   转义字符:\n,\t

   阿里巴巴编程规范:缩进等

流程控制

   if分支:if-else,多分支if,if嵌套,使用场景

   switch:语法,与if的对比

   while循环

   Debug断点调试的使用

   do-while循环

   for循环

   各种循环语句的区别和应用场景

   循环跳转控制语句:break,continue

   嵌套循环

   嵌套循环案例:打印图形,下兔子,鸡兔同笼,九九乘法表等

   常见错误讲解:判断用户输入类型

数组

   数组的定义

   数组的动态初始化

   数组的访问格式

   数组的静态初始化:{}

   java的内存划分和作用

   数组在内存中的存储

   数组常见问题

   最大值最小值

   冒泡排序的原理分析及代码实现

   二分查找的原理分析及代码实现

   多维数组:语法,不常用数组定义格式

   多维数组案例

方法

   方法的定义和调用:static,递归

   方法的参数和返回值:static

   扩展:方法的可变参数

   方法的重载overload

   参数的基本类型和引用类型的区别

java面向对象

面向对象基础

   package关键字的作用:import

   面向对象概述:多种开发思想对比

   类和对象的关系

   类和对象的创建:属性,方法,以及调用

   分析对象在内存中的存储

   成员变量和局部变量的区别

   private关键字的应用

   this关键字的运用

   this关键字的内存原理

   构造方法

   构造方法重载

   阿里巴巴编程规范

面向对象进阶

   面向对象特性之封装:两个角度讲解

   权限修饰符:public,private,protected

   static关键字的作用

   static关键字内存分析

   代码块:调取优先级

面向对象高级

   面向对象特征之继承

   super关键字的作用

   继承时子类的访问特点

   方法的重写override

   final关键字:常量

   面向对象特征之多态

   多态中成员访问的特点

   多态中的数据类型转换

   instanceof关键字的使用

   JAVA三大特性优缺点

   抽象类概述

   抽象类代码实现

   抽象类的成员特点

   接口的概述

   接口的特点和注意事项:default-1.8新特性

   类、抽象类、接口之间的关系

   案例:基于面向对象的综合案例

内部类

   内部类的概述

   成员内部类的使用

   局部内部类的使用

   静态内部类

   匿名内部类的使用

   匿名内部类在开发中的应用

异常

   异常的概述

   JVM默认处理异常的方式

   异常处理方式之try-catch

   异常处理方式之throws

   异常处理方式之throw

   异常分类

   throwable的常用方法

   异常的注意事项

   常见异常介绍

   自定义异常的使用

   综合案例:快递柜项目

idea的安装与使用

   idea的安装

   idea的使用

   idea的常用快捷键

API

API基础

   API的使用方式

   包装类

   Object

   String

   StringBuilderStringBuffer

常用API

   Math

   System

   BigDecimal

   Arrays

   Date,SimpleDateFormat

   NumberFormat类以及使用

   正则表达式及常用类

   jar包的制作以及使用

算法

常用算法

   插入排序的原理分析及代码实现

   归并排序的原理分析及代码实现

   希尔排序的原理分析及代码实现

   选择排序的原理分析及代码实现

   快速排序的原理分析及代码实现

   扩展:加密算法

java核心类库

泛型

   泛型概述

   泛型在类中的使用

   泛型在接口中的使用

   泛型限定和通配符

集合

   集合体系结构

   Collection

   List接口

   ArrayList

   Vector

   LinkedList

   迭代器的使用

   增强for循环的使用

   forEach

   Set

   HashSetTreeSet

   TreeSet的自然排序和比较器排序:compareable,compartor

   Map

   HashMapTreeMap

   Collections

数据结构

   常见数据结构之数组和链表

   常见数据结构之栈和队列

   数据结构之哈希表

   常见数据结构之树与二叉树

   数据结构之二叉平衡树

   数据结构之红黑树

   ArrayList集合源码分析

   LinkedList集合源码分析

   copyOnwriteArrayList

   CopyOnWriteArraySet

   TreeSet(TreeMap)底层源码分析

   Jdk1.7HashSet(HashMap)源码分析

   Jdk1.8HashSet(HashMap)源码分析

   HashTable

   ConcurrentHashMap

   ConcurrentLinkedQueue

   BlockingQueue接口

   JDK1.9集合新特性

IO

   File类对文件的操作

   IO流的概述和分类

   字节流写数据的方式

   字节流读数据的方式

   案例:字节流文件复制

   字符编码

   字符流写数据的方法

   字符串读数据的方法

   字节流与字符流的转换

   字符缓冲流的使用

   字符缓冲流的特有方法

   标准输入输出流

   打印流的使用

   对象序列化流

   serialVersionUID&transient

   Properties的用法

   内存操作流的使用

   try-catch-resources

   Externalizable接口

   RandomAccessFile使用

   SequenceInputStream的使用

   压缩流/解压缩流

多线程

   进程和线程的区别

   同步与异步&并发与并行

   Java实现多线程的三种方式

   线程API之线程名称

   线程API之线程休眠

   线程API之线程阻塞

   线程API之线程优先级

   线程API之线程中断

   线程API之守护线程

   线程的安全问题

   同步代码块

   同步方法

   Lock

   线程死锁

   多线程通信问题

   生产者与消费者

   线程生命周期

   带返回值的线程Callable

   线程池概述

   缓存线程池

   定长线程池

   单线程线程池

   周期定长线程池

   重入锁

   Condition

   信号量

   读写锁

   倒计数器:CountdownLatch

   线程阻塞工具类:LockSupport

lambda

   Lambda表达式的标准写法

   Lambda的省略规则|

   Lambda和匿名内部类的区别|

   JDK89对接口组成的更新:函数式接口

   方法引用的介绍

   Stream流的中间操作

   Stream流的终结操作

   Stream流的收集操作

网络编程

   网络编程的概述

   IP地址(ipv4,ipv6)

   InetAddress类的操作

   端口和协议的详细解释

   TCP程序-SocketServerSocket

   在服务器中加入多线程

   相关类和API

   UDP协议发送与接收数据

   UDP协议中广播与组播

NIO

   NIO概述

   Buffer的使用

   Channel

   Selector和非阻塞网络编程

XMLJSON

   XML介绍

   XML语法

   Schema验证XML

   解析XML方式介绍

   Dom4j解析

   XPATH解析

   基于Dom4j操作XML文件

   JSON介绍

   JSON解析

枚举、注解与反射

   枚举概述

   枚举语法

   枚举常用方法

   枚举接口

   枚举注意事项

   注解概述

   内置注解

   Jdk常见的元注解

   自定义注解

   虚拟机类加载机制(概述,类加载过程,类的初始化时机)

   反射概述

   Class与加载方式

   反射中的构造方法

   反射中的成员方法

   反射中的属性

   案例:基于反射与注解

   内省(反射提升视频)

扩展

   类加载器(概述,分类,双亲委派机制,ClassLoader类,自定义类加载)

单元测试

Junit4

   Junit4

设计模式

设计模式

   6大原则

   14种设计模式

阶段二:初识 JavaWeb

掌握 Mysql8.0 数据库操作,掌握前端技术 (html,css,javascript,jquery,bootStrap),掌握 JAVAWEB技术。其中包括网站开发流程,基于 MVC 架构实现 JSP+Servlet 的网站开发,具备小型网站开发能力 ,项目开发中的调试能力。

模块

章节

知识点

数据库

数据库基础

   数据库介绍

   MYSQL8安装与卸载

   SQL概述

   SQL语句分类

   基于命令行实现DDL:操作数据库与数据表,表引擎,字符集,数据类型

   DCL权限管理:grant,createuser,dropuser

   DML操作表中数据:CRUD

   DQL数据查询:简单查询,条件查询,模糊查询,去重,排序,聚合,分组,分页

   MYSQL约束类型:主键,唯一,非空,默认,自增长,外键

   MYSQL基础练习题讲解

数据库高级

   基于Navicat实现DDL:操作数据库与数据表,表引擎,字符集,数据类型

   基于SQLyog实现DDL:操作数据库与数据表,表引擎,字符集,数据类型

   数据库三大范式

   多表关系:一对多,多对一,一对一,多对多

   多表查询:Union,Unionall,联接查询(内联接,外联接),子查询

   MYSQL高级查询练习题讲解

   数据库扩展:多行新增,多表更新,多表删除,日期函数,数据的行转列

   导入导出数据库

数据库事务

   MYSQL事务:基本概念,特点,提交与回滚,隔离级别

数据库进阶

   存储过程,视图,触发器,MYSQL索引,SQL优化,索引原理,慢查询与SQL优化

Oracle

   Oracle

JDBC初级

   JDBC体系结构

   JDBC核心组件

   CRUD语法复习

   JDBC连接步骤

   JDBC执行增删改语句

   JDBC手动处理事务

   事务案例:转账功能

   SQL注入

   PreparedStatement预状态通道

   ResultSet结果集查询

JDBC高级

   JDBC操作多表关系

   JDBC实现批处理:Statement批处理,PreparedStatement批处理

   基于反射优化结果集

   封装DBUtils工具类

   使用properties属性文件保存数据库信息

   数据库连接池:dbcp,c3p0,druid

   ThreadLocal讲解

   使用连接池+ThreadLocal优化DBUtils

   JdbcTemplate工具类

   案例:基于JDBC实现数据表CRUD->基于多表,只添加dao

HTML5

HTML基本使用

   html基本概念

   html基本结构

HTML常用标签

   html常用标签:<h1><h6>,<p>,<br/>,<hr/>,<em>,转义码,<img>,<font>,<a>
引入块状元素,行级元素概念

   列表标签:有序,无序,自定义

   表格标签:<table>,常用属性:border,cellspacing,cellpadding,width,height,align,valign,rowspan,colspan

   框架标签:iframe,frameset

   框架标签:iframe,framese

HTML表单

   表单的概念

   表单的语法

   常用表单元素:type="text","password","submit","reset","radio","checkbox","button","file","image","hidden"

   表单常用属性:name,value,enccols=""readonlydisabled>

   多行文本域

h5表单新特性

   HTML4HTML5的区别

   语义标签

   增强型表单

   视频+音频

CSS

   CSS基本概念及作用

   CSS基本语法

   CSS定义位置:行内css,内部css,外部css

   CSS基本选择器:标签选择器,id选择器,类选择器

   CSS优先级:选择器优先级,定义位置优先级

   CSS高级选择器:后代选择器,交集选择器,并集选择器,全局选择器

   CSS继承性

CSS常用样式

   CSS样式属性:<span>,文本属性(font),文本样式(color,text-align,text-indent,line-height,text-decoration,vertical-align),伪类,cursor

盒子模型与布局

   DIV标签介绍,常用属性:width,height,background,list-style

   盒子模型及常用属性:width,height,padding,margin,border,display,float,clear,overflow

h5页面操作新特性

   Canvas绘图

   SVG绘图

   地理定位

   拖放API

h5扩展

   WebWorker

   WebStorage

   WebSocket

CSS3新特性

   CSS3选择器

   框模型

   背景和边框

   文本效果

   2D/3D转换

   动画

   多列布局

   用户界面

JS

JS基础

   JS概念介绍:概念,特点,作用

   JS定义位置:行内js,内部js,外部js

   JS基本语法:变量,数据类型,undefined,String的属性与方法,数组,运算符,

   选择结构,循环结构,弹窗,注释

   JS调试方案:F12浏览器调试,firebug,alert()

   JS函数:系统函数,自定义函数,匿名函数

   JS变量作用域:局部变量,全局变量,常用方法

   JSBOM模型:window对象常用属性,常用方法

   JS之元素事件:onload,onmouseover,onmouseout

   JS之元素事件:onload,onmouseover,onmouseout,onclick,onchange,onfocus,onblur

   JS之DOM模型:getElementById(),getElementsByName()

   JS特效实现:内置对象Array,Math,String,Date

   JS案例讲解:全选/全不选,动态时间,动态表格,省市级联特效

JS高级

   表单验证意义与场景

   表单验证常用事件与属性

   正则表达式介绍与案例讲解(验证0-120之间的年龄):提供常用正则文档

   JS面向对象思想

Jquery

Jquery学习

   JqueryJS的关系

   Jquery语法结构

   Jquery选择器:基本,类,标签,并集,交集,全局,后代,子,相邻,同辈,属性,过滤,可见性选择器

   Jquery常用函数:css(),html(),val(),addClass()

   JqueryJS对象的转换

   Jquery中的事件:鼠标事件,键盘事件,表单事件,悬停事件,点击事件,动态效果函数

   Jquery操作DOM:元素的增加,替换,删除,克隆,获取

   Jquery特效:短信墙,树形菜单,选项卡,导航栏,图片放大镜,拖动效果,阻止事件冒泡

   基于Jquery实现表单验证

   Jqueryvalidate验证框架

   网站常用控件学习:My97DatePicker,富文本框

移动端

移动端布局

   移动端布局-viewport

   移动端布局-2倍图

   移动端布局-移动端常见布局

flex布局

   flex布局-体验

   flex布局-flex-direction

   flex布局-justify-content

   flex布局-flex-wrapalign-items

   flex布局-align-content

   flex布局-flex

   flex布局-align-self

   flex布局-导航栏

移动端适配

   移动端适配-媒体查询

   移动端适配-rem

   移动端适配-rem应用

   移动端适配-实际应用

   移动端适配-less应用

   移动端适配-解决方案

响应式布局

bootStrap

   bootStrap介绍与入门

   bootStrap栅格系统,排版,表格,表单,按钮,图片

   bootStrap组件:字体图标,下拉菜单,导航,警告框,弹窗,输入框组,分页,进度条,按钮组等

版本控制工具

SVN

   版本控制的概念

   SVN介绍

   SVN服务器端安装

   SVN客户端安装

   SVN客户端常用操作

   IDEA关联SVN

   IDEA操作SVN实现代码备份

GIT

   GIT介绍:GIT诞生,集中式VS分布式

   GITSVN的区别

   GIT的安装:linuxmac,window安装

   GIT版本回退

   GIT的工作区域

   GIT提交文件

   GIT撤销修改

   GIT删除文件

   GIT远程服务器介绍

   GITLAB常用操作介绍

   GITHUB常用操作介绍

   GITEE常用操作介绍

   GIT初始化

   GIT操作远程仓库

   GIT关联IDEA

   使用IDEA操作版本控制工具

   GIT分支管理:创建与合并分支,解决冲突,分支管理策略,bug分支,Feature分支,

   多人协作:创建标签,操作标签

   标签管理GIT服务器

   自定义GIT:忽略特殊文件,配置别名,搭建

服务器

Tomcat

   贯穿案例展示及讲解

   WEB服务器介绍

   Tomcat服务器搭建

   基于IDEA配置Tomcat

   Tomcat常用配置:修改端口号,修改编码方式,图形化管理项目

Servlet

   Servlet介绍

   ServletAPI

   Servlet初识

   Servlet生命周期

   Request的常用方法

   Response的常用方法

   转发与重定向的区别

   Session会话

   ServletContext使用

   初始化参数的获取

   注解方式实现Servlet

   Postman介绍与使用

   案例:基于Servlet实现数据库的CRUD

   HTTP协议介绍

   HTTP请求方式和开发模式介绍:fiddler

JSP

   JSP介绍

   JSP页面初识

   JSP编译原理

   JSP九大内置对象

   JSP三大指令

   JSP请求状态码含义

   EL表达式

   JSTL标签库

   FMT标签库

   案例:基于JSP+JSTL+FMT+Servlet实现用户登录退出

WEB应用技术

Cookie

   Cookie介绍

   Cookie的基本操作

   删除Cookie

   Cookie的应用

   Session实现会话跟踪

   SessionCookie的区别

Filter+Listener

   Filter学习

   Filter应用

   Listener学习

   Listener应用

MVC

   MVC介绍

   三层架构概念

   代码实现MVC

   MVC与三层架构的区别

   公司开发模式介绍:前后端分离

   案例:基于三层架构实现用户登录

AJAX+JSON

   AJAX概念

   AJAX原理

   AJAX常用属性与方法

   基于JS实现AJAX

   基于Jquery实现AJAX

   JSON介绍

   JSONJAVA转换

   案例:使用AJAX+JSON+Servlet实现用户名重复验证

文件操作

   文件上传案例:文件上传的http协议内容

   文件下载案例

项目讲解

   案例:基于Servlet+JSP+JSTL+AJAX+EL实现多表操作案例(CRUD+分页)学生管理模块

快项递目E1

后台开发

   项目概述

   编写MVC框架

   二维码生成

   Layer

   阿里云短信

   项目搭建与工具类整理

   管理员数据操作部分

   管理员登录前后端交互

   流程与快递表格创建

   API设计

   DAO接口编程

   SQL语句编程

   DAO编写+测试

   Service层编写

   阿里云短信集成

   控制台部分

   分页列表

   快递录入

   删除与修改

   权限控制

   后续梳理

微信端

   短信登录和退出

   快递列表获取

   二维码展示

   Ngrok内网穿透

   微信JS扫码

   取件

   补充

阶段三:企业级框架

掌握公司部署环境 Linux, 企业级框架 Spring,SpringMVC,Mybatis,Springboot 框架。Redis,Nginx 提升项目,响应效率。学完本章课程,掌握基于企业级框架实现网站开发的技能。

模块

章节

知识点

Maven

Maven概述

   Maven引言与介绍

   Maven的功能

   Maven的模型

   Maven原理分析

Maven环境搭建

   Maven的安装与配置

   Maven更换阿里云镜像

   Maven的构建&自动化构建

   Maven创建javaweb工程

   Mavenpom.xml文件介绍

   Maven的依赖管理

   Maven的常用命令

   本地项目安装到本地仓库

   自定义本地仓库路径

   Maven坐标

   Maven的依赖性、传递性、继承性

   Maven的生命周期

Maven高级

   Maven中的插件使用

   Maven私服的概念

   Maven私服的搭建和使用

Linux

Linux安装与应用

   Linux概述

   虚拟机概念

   VM介绍与安装

   VMWare下安装Linux

   XShell连接linux

   Linux目录结构

   Linux权限操作

   Linux常用指令:vi,vim

   FXP文件上传

   SecureCRT8.0工具介绍

环境搭建

   yum介绍

   Linux下安装JDK

   Linux下安装tomcat

   Linux下防火墙问题

   Linux下安装mysql

   Linux修改主机名

   Linux修改静态IP

   通过主机名互访

   基于阿里云的Linux访问操作

Nginx

Nginx

   Nginx介绍

   Nginx安装

   Nginx之虚拟主机

   Nginx之反向代理

   Nginx之负载均衡

   Nginx之部署静态页

Nosql

Redis

   Nosql介绍

   Redis介绍

   Redis安装与启动

   Redis客户端访问及服务管理

   Redis数据类型介绍

   Redis常用指令

   Redis事务管理

   Redis发布与订阅模式

   Jedis访问Redis

   Jedis连接池访问Redis

   Redis持久化方案-RDB

   Redis持久化方案-AOF

   Redis主从复制

   Redis哨兵模式介绍

   Redis哨兵模式配置

   Redis集群概念

   Redis集群环境搭建

   Jedis连接Redis集群

   Redis缓存雪崩

   Redis缓存穿透

   Redis缓存击穿

   Redis分布式锁

MongoDB

   MongoDB介绍

   基于Window实现MongoDB安装

   基于Linux实现MongoDB安装

   MongoDB支持的数据类型

   MongoDB的常用指令

   JAVA代码操作MongoDB

   MongoDB索引

   MongoDB备份与恢复

   MongoDB集群介绍

   MongoDB集群搭建

   MongoDB故障转移

   MongoDB仲裁者配置

企业级框架

Mybatis

   Mybatis介绍

   Mybatis-xml开发入门

   Mybatis-Annotation开发入门

   Log4j的使用

   代理模式CRUD基本操作

   parameterTyperesultType详解

   resultMap详解

   传统Dao模式CRUD操作

   Mybatis配置文件详解

   Mybatis动态SQL

   多对一(关联语句)

   一对多(关联语句)

   多对多(关联语句)

   多对一(懒加载方式)

   一对多(懒加载方式)

   Mybatis一级缓存

   二级缓存

   二级缓存整合Ehcache

   注解映射详解

   Mybatis逆向工程

Spring

   Spring介绍

   SpringIOC入门案例

   SpringIOC详解

   SpringDI详解

   Spring整合JDBC

   Spring整合JDBC案例-转账功能

   Spring注解配合xml配置IOCDI

   Spring全注解配置IOCDI

   Spring整合Junit4

   SpringAOP素材案例

   SpringJDK代理和cglib代理

   基于XML配置AOP

   切入点表达式详解

   Spring全注解配置AOP

   XML配置声明式事务

   注解+XML配置声明式事务

   Spring全注解配置声明式事务

   spring高级分析之IOC容器说明

   spring高级分析之组件扫描器TypeFilter

   spring高级分析之Import注解和自定义导入器

   spring高级分析之BeanFactoryPostProcessor

   spring高级分析之BeanPostProcessor

   spring高级分析之InitializingBean

   spring高级分析之FactoryBean

   spring高级分析之EnableAspectjAutoProxy注解的解析

   SpringAOP的运行期增强的执行过程分析

   spring事务高级分析之TransactionTemplate源码分析

   spring事务高级分析之DataSourceUtils源码分析

   spring事务高级分析之TransactionSynchronizationManager源码分析

   spring事务高级分析之TransactionEventListener注解的加载过程分析

   Spring中模板对象:NamedParameterJdbcTemplate的使用

   RedisTemplate的使用

   Spring事务设计的设计模式分析

SpringMVC

   SpringMVC入门案例

   SpringMVC原理详解

   SpringMVC常用组件介绍

   SpringMVC-RequestMapping注解

   SpringMVC-封装请求参数

   SpringMVC的表单验证注解

   SpringMVC-使用ServletAPI

   SpringMVC-requestParam注解

   SpringMVC-RequestBody注解

   SpringMVC-PathVariable注解

   SpringMVC-restful风格URL实现

   SpringMVC-RequestHeader注解

   SpringMVC-CookieValue注解

   SpringMVC-ModelAttribute注解

   SpringMVC-SessionAttribute注解

   SpringMVC-响应数据

   SpringMVC-异步处理数据

   SpringMVC-文件上传

   SpringMVC-异常解析器

   SpringMVC-拦截器

   SpringMVC中的请求参数封装源码分析和运用的设计模式介绍

   SpringMVC中的父子容器

SSM整合

   ssm整合-mybatis映射dao

   ssm整合-service

   ssm整合-spring整合mybatis

   ssm整合-controllerjsp页面

   ssm整合-springmvc