Java课程大纲
尚新途
① 预科阶段
程序员素养
为什么需要学编程,什么样的人可以做程序员?
职业规划
为自己做一个5年的职业规划和奋斗目标 本行不行,我
可以转行到IT开发吗? 流行的编程语言,应该怎么选择
程序员不是青春饭,程序员迈向百万年薪之路
Java技术体系
基础学员学习JAVA 的秘诀? 十分钟秒懂编程,程序
就是现实逻辑的表达 表格思想_理解数据库存储数据
表格思想_理解JAVA 类和对象 表格思想_理解XML 文档
简历
写出一份吸引面试官的简历(六大要素)
笔试和面试要点
面试前,三大步让你秒杀90%竞争者 面试中,秒吸引
面试官的十大要点 技术面试中,不该问的4个问题
职场软实力
职场成功的核武器_7A+软实力理论
② JavaSE
变量、数据类型、运算符
二进制 二进制和十进制的转化 注释_单行注释_多行注
释_文档注释_注释内容和字节码的关系 标识符_关键字_
驼峰原则
变量的本质_内存画图_变量声明和初始化 变量的分类
和作用域(局部变量、成员变量、静态变量) 常量和
final 基本数据类型介绍
整型变量和整型常量 浮点型_float_double
char字符型_转义字符 boolean布尔型_if语句使用要点_
布尔型占用空间问题 运算符介绍
算术运算符(二元、自增、自减) 赋值和赋值扩展运算符
关系运算符详解 逻辑运算符_短路运算详解 位运算
符详解 字符串连接符 条件运算符(三元运算符) 运
算符优先级问题
自动类型转换详解 强制类型转换 基本类型转换常见
错误_溢出_L问题 使用Scanner获得键盘的输入
控制语句
控制语句和现实逻辑对应 if单选择结构 if_else双选择
结构 if_elseif_else多选择结构 switch语句_IDEA更换
主题
循环_while 循环_for循环_dowhile_ 嵌套循环
break和continue语句_标签_控制语句底层原理 写一个
年薪计算器_百度查问题的秘诀(相当重要) 个人所得税
计算器软件
方法核心详解_天才思维模型教你高手学习思维模式
方法的重载 递归结构讲解_递归头_递归体
面向对象编程
基础
面向过程和面向对象区别 类和对象的概述 类的属性和
方法 创建对象内存分析 构造方法(Construtor)及其重
载 对象类型的参数传递
this关键字详解 static关键字详解 局部代码块、构
造代码块和静态代码块 package和import详解
JavaDoc生成API文档
进阶
面向对象的三大特性 面向对象之--封装(
Encapsulation) 访问权限修饰符 面向对象之--继
承(Inheritance) Object类
方法重写Override super关键字详解 重写equals()
和toString() 继承中对象创建的内存分析 面向对象
之--多态(Polymorphism)
向上转型 向下转型 instanceof运算符 编译时和
运行时详解 final修饰符 抽象类和抽象方法(
abstract) 接口的定义和实现
JDK8的接口新特性 接口应用:内部比较器
Comparable 内部类详解 Java的内存管理与垃圾回
收
异常机制
异常的概述 异常的执行过程分析 try-catch-finally
捕捉异常 throw抛出异常
throws声明异常 异常继承体系 运行时异常和编译
异常 自定义异常
Java常用类
Wrapper包装类 自动装箱和自动拆箱 包装类的源码
分析 String类的使用与内存原理 String类的源码分
析 StringBuffer
StringBuilder 字符串处理类性能分析 Date类
System类 DateFormat类 Calendar类 Math类
BigInteger类和BigDecimal类 Random类 枚举类
型 File类 常见的面试题讲解与分析
集合(容器)
泛型接口 泛型类 泛型方法 泛型通配符 泛型通
配符上下限定
容器简介 容器接口介绍 Collection接口介绍
List接口介绍 ArrayList的使用 ArrayList的并集、交
集、差集 ArrayList底层源码分析 Vector的使用 Vector
底层源码分析 LinkedList的使用 LinkedList底层源码分
析
Set接口介绍 HashSet的使用 HashSet存储特征分析
HashSet底层源码分析 TreeSet的使用 TreeSet的比较
规则定义 TreeSet底层源码分析
比较器Comparable和Comparator
Map接口介绍 HashMap的使用 HashMap底层源码
分析 TreeMap的使用TreeMap底层源码分析
Iterator迭代器介绍 Iterator迭代器的使用 遍历集合方
法总结 Collections工具类的使用
IO流
IO流的概念 IO流的分类及其原理分析 文件流
FileInputStream、FileOutputStream
缓冲流BufferedInputStream、BufferedOutputStream
数据流DataInputStream、DataOutputStream 对象
流ObjectInputStream、ObjectOutputStream 序列
化和反序列化
转换流InputStreamReader、OutputStreamWriter
打印流PrintWriter和PrintStream
使用IO流复制文件夹
ApacheIO包的使用
多线程
进程和线程 线程的创建与启动 创建线程执行流
程 线程的生命周期 线程的使用 多线程的安全问
题与解决办法
线程的同步:同步代码块 线程的同步:同步方
法 线程的死锁问题 生产者与消费者模式
网络编程
计算机网络基础知识 网络通信协议 OSI参考模
型 TCP/IP参考模型 数据的封装与拆封原理解析
TCP协议 UDP协议 InetAddress的使用
InetSocketAddress的使用
IP地址和端口号 URL和Socket 基于TCP协议的单向
通信 基于TCP协议的双向通信 基于TCP协议的点对点
聊天应用 基于TCP协议的一对多聊天应用 基于UDP协
议传递基本类型数据 基于UDP传递对象类型数据
反射
反射介绍 创建对象过程分析 获取Class对象的三种方
式 通过反射获取构造方法 通过反射获取成员变量 通过
反射获取方法 如何提升反射效率
数据结构和算法
数据结构的概述 手写单向链表 手写双向链表 手
写树与二叉树排序
javaSE提升训练
飞机大战小项目训练
智能电话本项目实战
③ 数据库阶段
MySQL入门
MySQL基础
数据库基础知识 Mysql安装和卸载 使用navicat
访问数据库 SQL语言入门 MySQL中的数据类型
DQL
编写基本select语句 where子句 select语句中的算术表
达式 定义空值 定义列别名 连字运算符 文字
字符串
去除重复行 基本select语句小节练习
多表查询
单行子查询 多行子查询 等值连接查询 非等值连接查
询 SQL99-内连接查询 SQL99-外连接查询 SQL99-
自连接查询
MySQL函数使用
单行函数 多行函数 group by子句 having子句
DDL
创建数据库 创建表 删除表
修改表
修改表名 修改列名 修改列类类型 添加新列 删除指
定列
DML
数据操纵语言(DML)INSERT的使用 添加数据(
INSERT) 默认值处理(DEFAULT) 更新数据(UPDATE)
删除数据(DELETE)
DCL
MySQL权限管理 通过GRANT子句分配权限 刷新权限
约束
添加删除主键约束 添加删除外键约束 添加删除唯一性
约束 添加删除非空约束
事务
什么是事务 事务控制语言(TCL) 事务的使用 事务并
发问题与隔离级别
定义约束原则 定义非空约束 定义唯一性约束 定义
主键约束 定义外键约束 定义检查约束 禁用与启用
约束
索引
什么是索引 索引的使用 创建索引(普通索引,唯一索
引,主键索引,组合索引)
④ JDBC
数据库范式与表关系
数据库设计范式简介 第一范式 第二范式 第三范
式 数据库设计范式总结
数据库表关系简介 一对多关系 一对一关系 多对多关系
JDBC的基本使用
JDBC概述 获取连接 使用properties读取属性文件
Statement的使用 PreparedStatement的使用
JDBC进阶
JDBC批量添加数据 Bolb类型的使用 Result的使用
ORM编程思想 模糊查询 动态条件查询 分页查询
SQL注入
什么是SQL注入 SQL注入案例演示 解决SQL注入
JDBC事务处理
事务简介 JDBC事务处理实现
连接池
Druid的使用 基于Druid封装工具类
应用程序分层
应用程序分层简介 应用程序分层实现 封装通用的
BaseDAO
封装通用的DML操作 封装通用的查询操作
对象关联查询
对象关联关系简介 创建对象关联关系 使用对象关联关
系存放查询数据
⑤ web前端
HTML5
互联网三大基石 HTML 入门 VSCode工具的使用
基本标签 HTML中body中的标签 超链接标签 图
片标签 表格标签 表单标签 有序列表 无序列表
HTML5新增标签
CSS3
CSS入门 引入CSS样式 CSS选择器 CSS常用属性
CSS中的定位 盒子模型 CSS3新特性 媒体查询 雪
碧图 字体图标
JavaScript
JavaScript基础
JS简介 JS语句标识符 JS变量类型 JS运算符 JS条件语
句 JS循环 字符串处理 操作数组 JS函数的使用
JavaScript进阶
Document对象的使用 Element对象的使用 JS事件处
理 JS定时器的使用 JS的防抖与节流
jQuery
jQuery简介 选择器的使用 jQuery的DOM操作
jQuery事件处理 jQuery遍历
VUE3
ECMAScript6
ES6简介 Nodejs环境安装 Babel转码器 Let命令
Const命令 对象结构赋值 字符串处理 操作数组 函数
扩展 Promise对象 Async函数 Class使用 Module
使用
VUE3
VUE简介 VUE开发前端的准备 模板语法 条件渲染
列表渲染 事件处理 表单输入绑定 组件使用 Axios
使用 VUE引入路由配置 路由处理 VUE状态管理
VUE3新特性
⑥ JavaEE
计算机网络协议
计算机协议介绍 TCP、IP协议群 TCP协议传输特点
数据包处理流程 HTTP协议介绍 HTTP协议特点
HTTP协议中的请求行、请求头、请求体 HTTP协议的请
求方式 HTTP协议的响应行、响应头、响应体 MIME
类型
XML
XML介绍 XML基本语法 XML组成部分 DTD约束
Schema约束 Jsoup解析器的使用 XML爬虫案例
Tomcat
Tomcat简介 Tomcat下载与安装 Tomcat目录结
构 Tomcat配置文件说明 配置
TomcatManager Tomcat工作原理 Tomcat架构说
明 Tomcat组件讲解 配置虚拟主机
Servlet基础
Servlet简介 手动编写第一个Servlet案例 Servlet继承
结构 Servlet生命周期 Servlet处理请求原理
Servlet的作用 在Idea中编写Servlet Servlet处理请
求 Servlet产生响应
HttpServletRequest对象的使用 ServletContext对象
的使用 ServletConfig对象的使用 Cookie对象的使
用 HttpSession对象的使用 Filter对象的使用
Listener对象的使用
文件上传 文件下载 自启动Servlet Servlet线程安全
问题 Servlet的url-pattern配置 Servlet的多URL映
射方式 基于注解开发Servlet
JSP基本语法
JSP技术介绍 JSP运行原理 JSP声明标签 JSP脚本标
签 JSP赋值标签 JSP指令标签 JSP四大作用域对象
JSTL标签库 EL表达式使用 MVC模式
Ajax
Ajax简介 XMLHttpReques对象的使用 Ajax运行原理
剖析 $.ajax()的使用 $.get()的使用 $.post()的使
用 $.getJSON()的使用 serialize()方法的使用
JSON
JSON简介 JSON格式数据特征 Jackson简介
Jackson的常用注解 Jackson工具类的使用
项目:Web实战案例
⑦ 高级框架
Maven
Maven简介 Maven的安装 Maven的工程类型和结
构 Maven常用命令 Maven仓库类型
创建Maven项目 Maven的依赖管理 最短路径优先原
则 最先声明原则 Maven聚合关系 Maven常用插件
Mybatis
什么是ORM框架 什么是Mybatis Mybatis入门案
例 Mybatis核心对象与工作流程 SqlSession的使
用 Mapper动态代理原理
基于Mybatis实现数据的增删改查操作
Mybatis配置文件详解 Mybatis映射文件详解
Mybatis的动态SQL Mybatis缓存 Mybatis关联查
询 Mybatis的分解查询 Mybatis的注解开发
MybatisGenerator插件的使用 动态代理设计模式
Spring 5
Spring框架简介 Spring体系结构 IOC控制反正思
想 Spring容器类型
对象的创建方式 对象的创建策略 对象的销毁机制
生命周期方法 获取Bean对象的方式
什么是依赖注入 Setter依赖注入 构造方法依赖注
入 Spring的自动注入
注入Bean对象 注入List、Set类型对象 注入Map类型
对象 注入Properties对象
Spring常用注解使用 Spring整合Junit进行单元测
试 Spring整合Mybatis
搭建整合环境 编写配置文件 编写实体类、持久层、
业务层 自动创建代理对象
AOP简介 AOP术语说明 AOP入门案例 AOP的通知
类型 切点表达式 多切面配置 注解配置AOP
Spring原生AOP实现 SchemaBased实现AOP
事务简介 Spring事务管理方案 什么是声明式事务
Spring的事务管理器 事务控制API 事务相关配置
事务传播行为 事务隔离级别 基于注解配置声明式事
务
SpringMVC 5
SpringMVC简介 SpringMVC入门案例
SpringMVC运行原理 SpringMVC获取请求参数
请求数据的封装处理 自定义参数类型转换器 编码
过滤器
视图解析器 SpringMVC处理响应 请求转发与重
定向 SpringMVC作用域传值
request域设置数据 session域设置数据 context域
设置数据
SpringMVC常用注解 SpringMVC文件上传
SpringMVC文件下载 SpringMVC异常处理
SpringMVC跨域请求 SpringMVC拦截器
全局拦截器 拦截器执行顺序 拦截器过滤敏感词汇案
例
SSM整合案例
⑧ 生产部署与协同开发
Linux
VMWare
VMWare安装及使用 VMWare常用配置
Linux简介 Linux安装及注意事项 Linux目录结构及
路径 Linux网络模式 Linux远程登录 Linux用户与
用户组 Linux文件基本属性 Linux常用命令
Linux超级用户与伪用户 Linux权限操作 Linux路
径 Linuux文件编辑工具vim Linux重定向、管道符与
环境变量 Linux磁盘管理
Linux软件安装之源码安装 Linux软件安装之rpm安
装 Linux软件安装之yum安装
Linux安装JDK Linux安装Tomcat Linux安装
MySQL Linux卸载MySQL
Git/GitEE
Git简介 Git与SVN区别 Git工作流程 Git的下载和安
装 Git文件状态 Git日志记录操作 Git还原文件
操作远程仓库 仓库推送、抓取与拉取 Git分支使
用 Git标签 Git工作流 在Idea中使用Git
Docker
Docker简介 虚拟化与Docker Docker核心概念
Docker安装 Docker核心命令 Docker配置Java环
境 Docker 安装Tomcat服务器 Docker安装MySQL
什么是数据卷 配置数据卷 容器数据卷Volume
DockerFile详解 Docker网络管理 Docker公有云使
用 Docker核心技术
⑨ 框架强化和Java高级技术
Spring Boot
Spring Boot简介 快速创建SpringBoot项目
SpringBoot项目结构 SpringBoot入门案例
SpringBoot原理分析
YAML文件
配置文件介绍 自定义配置数据 @Value读取配置文件
数据 占位符的使用 配置文件位置优先级
bootstrap配置文件
SpringBoot访问静态资源 SpringBoot整合JSP
SpringBoot注册Web组件
注册Servlet组件 注册 Filter组件 注册Listener组件
Thymeleaf入门 Thymeleaf操作字符串 Thymeleaf
操作时间 Thymeleaf条件判断 Thymeleaf遍历集
合 Thymeleaf遍历Map Thymeleaf获取域中数
据 Thymeleaf的URL写法 ThymeleafRESTful风
格 Thymeleaf相关配置
Spring Boot 整合PageHelper Spring Boot 整合
logback SpringBoot整合Mybatis Spring Boot 整合
Thymeleaf SpringBoot热部署 SpringBoot参数
校验
SpringBoot 异常显示页面 SpringBoot 整合Junit4
SpringBoot整合SpringTask Cron表达式 @Schedule
注解的使用 SpringBoot指标监控
Spring Boot Admin SpringBoot Actuator
Lombok
Lombok概述 Lombok安装 Lombok常用注解讲解
@Setter、@Getter注解 @ToString注解 @
EqualsAndHashCode注解 @NotNull @Data、@
Builder注解 @Log注解 @Cleanup、@
SneakyThrows注解
MybatisPlus
MybatisPlus概述 Spring集成MybatisPlus
SpringBoot集成MybatisPlus MybatisPlus的CRUD操
作
CRUD相关注解 条件构造器 分页查询 全局配置
ActiveRecord模式介绍 MybatisPlus分页插件的使
用 MybatisPlus乐观锁插件的使用 MybatisPlus的
逻辑删除 MybatisPlus扩展
自动填充 SQL注入器 代码生成器 MybatisX生成代
码 MybatisX生成映射配置
Swagger
Swagger2简介 Springfox Swagger极致用法
SwaggerUI用法 Swagger常用注解
@Api注解 @ApiOperation注解 @ApiModel注
解 @ApiParam注解 @APIModelProperty注
解 @APIIgnore注解 @ApiImplicitParam注解
Spring Security
Spring Security介绍 Spring Security认证
内存认证 数据库认证 PasswordEncoder CSRF防
护 会话管理 退出登录 退出成功处理器
Remember Me
Spring Security授权
RBAC模型介绍 权限表设计 创建权限查询方法
自定义访问控制逻辑 @Secured设置访问控制 @
PreAuthorize设置访问控制 前端进行访问控制
403处理方案
Shiro
Shiro简介 Shiro核心功能 Shiro核心组件 Shiro
入门案例
Shiro认证
自定义Realm 多Realm认证 多Realm认证策略
加密认证 认证过滤器 获取认证数据 Shiro会
话 会话管理 Remember Me
Shiro授权
权限表设计 数据库查询权限 在Realm中进行授
权 过滤器配置鉴权 注解配置鉴权 Shiro授权缓
存 Shiro整合Ehcache
⑩ 分布式架构
RabbitMQ
AMQP简介 RabbitMQ简介 安装Erlang 安装
RabbitMQ 基于Docker安装RabbitMQ 账户管
理 RabbitMQ工作队列模式 RabbitMQ发布订阅模
式 RabbitMQ路由模式
RabbitMQ通配符模式 SpringBoot整合
RabbitMQ 消息的可靠性投递 RabbitMQ高级特
性 RabbitMQ死信队列 RabbitMQ延迟队列
RabbitMQ高可用集群搭建
RocketMQ
RocketMQ简介 RocketMQ下载与安装 基于
Docker安装RocketMQ 控制台安装 常用管理命
令 SpringBoot整合RocketMQ RocketMQ技术架
构 RocketMQ部署架构
RocketMQ消息存储 RocketMQ消息过滤
RocketMQ负载均衡 RocketMQ事务消息
RocketMQ顺序消息 RocketMQ消息重试
RocketMQ延迟消息 RocketMQ消息查询
RocketMQ应用实战案例 RocketMQ高可用集群搭建
Zookeeper
Zookeeper简介 CAP定理 Zookeeper应用场景分
析 Zookeeper基本概念 Zookeeper服务管理
Zookeeper集群安装 Zookeeper数据模型
Zookeeper节点特性
Watcher监听机制 权限控制ACL 原生API操作
Zookeeper zkClient的使用 Zookeeper四字命
令 Zookeeper选举机制
Dubbo
什么是分布式架构 什么是RPC Dubbo简介
Dubbo核心组件 Dubbo入门案例 序列化协议安
全 地址缓存 超时时间和覆盖关系 重试机制
多版本灰度发布 负载均衡 集群容错 服务降
级 服务限流 结果缓存 Dubbo实战案例
Nginx
Nginx的简介 什么是正向代理 什么是反向代理
Nginx应用场景 Nginx下载与安装 Nginx目录详
解 基于Docker安装Nginx Nginx启停服务 Nginx
配置详解
全局块 events块 HTTP块 location指令
Nginx配置虚拟主机
基于单网卡多ip虚拟主机配置 基于域名虚拟主机配
置 基于多端口虚拟主机配置 Nginx核心指令
return指令 rewrite指令 if指令 set与break指
令 Gzip压缩指令
Nginx场景实践
浏览器缓存 代理服务 反向代理 负载均衡 第三
方fair模块安装 Nginx配置故障转移 跨域问题分
析 动静分离 限流算法 实现限流 WEB缓存机
制 Nginx高可用搭建 LVS负责均衡 Keepalived健
康检测 企业双机热备份方案
FastDFS
分布式文件系统概述 FastDFS简介 FastDFS核心
概念 FastDFS上传机制 FastDFS下载机制
FastDFS常用指令 SpringBoot整合FastDFS
FastDFS整合Nginx 配置Nginx的fastdfs模块
Redis
什么是NoSQL Redis简介 Linux安装Redis 基于
Docker安装Redis Redis的数据类型 Redis可视化工
具的使用 Jedis的使用 SpringDataRedis的使用
Redis配置文件详解 Redis发布订阅 Redis慢查
询 流水线pipeline RDB持久化机制 AOF持久化
机制 企业中如何选择持久化机制 Redis的事务处
理
Redis高可用
主从复制原理剖析 配置哨兵监控 哨兵监控原理剖
析 哨兵监控故障转移 Cluster模式搭建 Cluster模
式原理
Redis企业级解决方案
Redis脑裂 缓存预热 缓存穿透 缓存击穿 缓存雪
崩 Redis开发规范 数据一致性处理
MongoDB
MongoDB简介 Linux安装MongoDB 基于
Docker安装MongoDB MongoDB逻辑结构
MongoDB存储引擎 MongoDB基本命令 MongoDB
查询文档 MongoDB更新文档 MongoDB删除文档
MongoDB聚合操作 聚合管道顺序优化 单键索引
复合索引与多键索引 地理坐标索引 全文索引
Hash索引与索引管理 MongoDB实战案例
SpringBoot整合MongoDB MongoDB安全认证
MongoDB内置角色 基于角色的访问控制
Mycat
MyCat简介 Mycat工作原理剖析 搭建MySQL主从复
制 Mycat安装及命令详解 Mycat目录介绍 Mycat配
置文件说明 搭建读写分离 搭建双住双从 Mycat垂
直拆分 Mycat水平拆分 Mycat分片枚举 范围分片
全局序列
Mycat高可用搭建
Mycat高可用概述 搭建HAproxy 搭建
Keepalivaed Mycat安全
User标签鉴权 privilege标签权限控制 SQL拦截
白名单 SQL拦截黑名单 Mycat调优 Mycat实施指
南
Sharding-jdbc
Sharding-jdbc简介 Sharding-jdbc内部结构说明
Sharding-jdbc分片核心概念 Sharding-jdbc分片流程
解析 SQL规范 行表达式 Sharding-jdbc分库实战
Sharding-jdbc读写分离与数据分片 主从架构配
置 读写分离实战 强制路由剖析 数据脱敏架构剖
析 脱敏规则配置解析 脱敏处理流程解析 加密策略
剖析 用户密码加密实战 分布式事务处理实战 数
据库编排治理
ElasticSearch
ElasticSearch介绍 ElasticSearch单机版安装
ElasticSearch集群版安装 基于Docker安装
ElasticSearch ElasticSearch索引操作
ElasticSearch文档操作 ElasticSearch属性操作
ElasticSearch分词器
默认分词器 IK分词器 拼音分词器 自定义分词器
ElasticSearch文档搜索 ElasticSearch结果排序
ElasticSearch分页处理 ElasticSearch高亮查询 原
生Java操作ElasticSearch SpringDataES的使用
ElasticSearch实战案例 ElasticSearch优化
内存设置优化 磁盘选择优化 分片策略优化
Elastic Stack
Elastic Stack介绍 Elastic Stack组件介绍 Filebeat
介绍 Filebeat安装 Filebeat入门案例 Filebeat自
定义字段 Filebeat读取Nginx日志 Filebeat模板使
用 Filebeat仪表盘的使用 Filebeat输出到ES中
Metricbeat介绍 Metricbeat收集系统指标
Metricbeat查看Nginx指标 Metricbeat采集Nginx指
标 Metricbeat仪表盘的使用 Kibana介绍
Kibana安装 Logstash介绍 Logstas入门案例
Logstas双写一致 Logstas配置双写一致 Elastic
Stack实战案例
移动支付
微信支付
微信支付产品介绍 获取商户号 获取微信公众
AppID 设置证书与秘钥 信息安全详解 对称加
密 非对称加密 数字签名 数字证书 二维码生
成 ReentrantLock数锁 调用微信支付关单接口 调
用微信支付退款API
支付宝支付
支付宝产品介绍 开发者入驻 沙箱环境介绍 配置
秘钥 支付参数 设置支付客户端 支付宝支付流程
说明 统一收单下单 异步通知验签 支付宝退款
接口 交易状态查询
Lua语言
Lua概述 Lua特性 Lua配置环境 Lua编辑器 Lua
基本语法 Lua基本数据类型 Lua表达式 Lua变
量 Lua循环 Lua流程控制 Lua函数定义
Lua字符串处理 Lua操作数组 Lua迭代器
Lua表 Lua模块与包 Lua元表 什么是协成 Lua
实现协成 Lua文件IO Lua错误处理 Lua垃圾回
收 Lua面向对象 LuaJIT介绍 LuaJIT环境安装
goto语句 table库 FFI库 虚变量
OpenResty
OpenResty概述 OpenResty特征 OpenResty应用
场景 OpenResty包管理安装 OpenResty源码安
装 OpenResty运行命令 OpenResty处理程
序 OpenResty执行程序 OpenResty功能接口
OpenResty核心库
OpenResty系统信息 OpenResty运行日志
OpenResty数据编码 OpenResty高速缓存 Https
协议
什么是HTTPS协议 对称与非对称加密 数字签名与
数字证书 生成CA证书 服务器配置 清理证书设置
证书的私钥
OpenResty开发测试 OpenResty实战案例
OpenResty性能优化
阻塞函数 缓存应用 缓存风暴 多级缓存 漏桶与
令牌桶原理 限流实现 火焰图
分布式解决方案
分布式全局id
分布式全局id概述 分布式全局id解决方案 雪花算
法SonwFlake 雪花算法SonwFlake落地实现 雪花算
法SonwFlake落地实现之Mybatis Plus
分布式事务
分布式事务概述 MySQL事务隔离级别 MySQL中
的锁分类 MySQL中的死锁问题 什么是Redo
Log 什么是Undo Log 什么是两阶段提交 XA方
案 Seata方案 下载启动Sea方案
Atomikos介绍 基于Atomikos实现XA强一致性分布式
事务实战 BASE理论 最终一致性分布式事务
TCC介绍 Hmily实现TCC分布式事务实战 可靠消息
最终一致性事务 可靠消息最终一致性分布式事务实
战 最大努力通知型分布式事务 最大努力通知型分布
式事务实战
分布式锁
分布式锁概述 分布式锁业务场景演示 分布式锁解决
方案 数据库悲观锁实现的分布式锁 数据库乐观锁实
现的分布式锁 Zookeeper实现分布式锁 Redis实现分
布式锁
Redis分布式锁误删除问题 Redis分布式锁不可重入问
题
Kubernetes(K8S)
Kubernetes简介 Kubernetes架构详解
Kubernetes简介环境搭建与部署要求 Kubernetes安
装 部署master节点 部署node节点 什么是pod
RC&RS控制器 Deployment控制器 DS&Job&
CronJob控制器 DashBoard使用 安装Ingress-
nginx Helm安装
k8s高可用集群
安装keepalived 安装haproxy 部署master 部署
node k8s部署微服务
制作Eureka镜像 制作服务镜像 Ingress暴露网关
⑪ 微服务
Spring Cloud微服务技术栈
微服务架构论
微服务的拆分规范和原则 如何选择SpringCloud版
本 如何学习微服务SpringCloud 什么是服务治理
服务注册发现
Eurka概念 单机Eureka注册中心搭建 解读Eureka注
册中心UI界面 服务自保和剔除 actuator微服务信息完
善 服务发现Discovery 搭建高可用Eureka注册中心
服务调用
OpenFeign概述 OpenFeign入门案例 OpenFeign
日志增强 OpenFeign超时机制 客户端负载均衡
服务断路器
什么是灾难性雪崩效应 雪崩效应解决方案之服务熔
断 雪崩效应解决方案之服务降级 雪崩效应解决方
案之服务隔离 雪崩效应解决方案之服务限流
Resilience4j概述 Resilience4j的断路器 Resilience4j
的超时降级 Resilience4j的重试机制 Resilience4j的
异常熔断降级 Resilience4j的慢调用熔断降级
Resilience4j的信号量隔离 Resilience4j的线程池服务
隔离 Resilience4j的限流
服务网关
Gateway概述 Gateway核心概念 Gateway入门案
例 路由规则 断言 网关过滤器 自定义网关过滤
器 解决跨域问题 用户鉴权 JWT概述
JWT原理 定义JWT工具类 网关过滤器加入JWT鉴权
分布式配置中心
Spring Cloud Config简介 Config配置总控中心搭
建 Config配置读取规则 Config客户端配置与测
试 动态刷新
消息总线
什么是Spring Cloud Bus 基于Docker安装
RabbitMQ Bus动态刷新全局广播 什么是Spring
Cloud Stream 消息驱动入门案例 消息驱动 分
组消费
分布式请求链路追踪
为什么需要链路追踪 Spring Cloud Sleuth是什么 微
服务集成Sleuth实现链路打标 什么是ZipKin Docker
搭建Zipkin服务 什么是SkyWalking SkyWalking核心
概念 什么是探针Java Agent
Java探针日志监控实现之环境搭建 SkyWalking服务环
境搭建 微服务接入SkyWalking探针 Docker搭建
Elasticsearch环境 SkyWalking使用Elasticsearch持
久化 SkyWalking自定义链路追踪
SkyWalking日志 SkyWalking告警 Skywalking自定
义告警规则 SkyWalking网络钩子Webhooks
SkyWalking钉钉告警 SkyWalking邮件告警
Prometheus环境搭建 Grafana环境搭建 微服务应用
接入监控
Spring Cloud Alibaba技术栈
SpringCloudAlibaba简介 Spring Cloud Alibaba版本与
兼容性
分布式服务治理
什么是Nacos Nacos Server下载安装 Docker安装
Nacos Server服务
服务调用
Dubbo和OpenFeign区别 微服务接入OpenFeign
Dubbo实现服务生产者 Dubbo消费者调用接口
Dubbo实现服务降级
分布式配置中心
Namespace命名空间 DataID配置 Group分组方
案 Namespace实施方案 将应用对接Nacos配置中
心 Nacos配置动态刷新 Dubbo服务对接分布式配置
中心 Nacos配置动态刷新 Nacos集群架构介绍
Nacos的数据持久化 Nacos集群配置
分布式流量防护
认识分布式流量防护 认识Sentinel Sentinel控制台环
境安装 将应用接入Sentinel 流量控制 热点参数限
流 线程隔离 熔断降级 熔断降级之慢调用 熔断降
级之异常比例 熔断降级之异常数 授权规则 系统自
适应限流 SentinelResource配置详解的使用
分布式事物处理
认识本地事物 认识分布式事物 分布式事务产生的场
景 XA方案 Seata方案
⑫ 项目分析设计
尚新途旅游网
技术架构
Mysql、Navicat、SpringBoot、SpringMVC、Mybatis-
plus、SpringSecurity、AdminLTE2、Thymeleaf、
Lombok、Ajax、Logback
项目描述
尚新途旅游网项目分为管理员端和用户端。管理员端(后
台)进行旅游产品的维护,主要功能有:管理员管理,角
色管理,权限管理,认证和授权,产品类型管理,旅游产
品管理;用户端(前台)进行旅游产品的展示,主要功能
有:用户注册和登录,查询旅游产品,收藏旅游产品。学
习本项目后,学员可以分析并开发常见的门户网站。
尚新途商城
技术架构
Mysql、Navicat、Zookeeper、Dubbo、SpringBoot、
SpringMVC、Mybatis-plus、Lombok、
SpringSecurity、JWT、FastDFS、RabbitMQ、Redis、
ElasticSearch、Kibana、Docker、Nginx、阿里支付平
台、支付宝
项目描述
尚新途商城是一款常见的电商网站,项目采用前后端分离架
构。前端开发主要使用vue.js,后端使用Dubbo技术进行
分布式调用。项目包含电商系统的大部分功能,分为商家
端和用户端。商家端有权限管理、商品管理、广告管理等
功能。用户端有用户注册和登录、搜索商品、添加购物
车、商品下单、支付、秒杀商品等功能。学习本项目后,
可以对电商项目和分布式项目的开发有更深的理解。
尚新途分布式医疗云平台
技术架构
Spring Boot 、Mybatis Plus 、Shiro、Nacos 、
Sentinel 、 Dubbo 、 RocketMQ 、Redis 、 Hutool 、
Maven 、Fastdfs 、 Swagger-ui 、Mycat 、 Docker 、
ECS
项目描述
分布式医疗云平台系统是以完整的基层医疗机构信息化解
决方案为出发点,打造链接诊所、医生、患者、一站式互
联网医疗服务系统,深度挖掘了基层医疗机构需求,解决
其真正痛点,提供医疗前沿资源及信息共享等、全面提升
医疗管理质量,可执行落地的综合性解决方案。由本次疫
情的教训,后期国家定会加大医疗系统的投入,学完本项
目之后可以对医疗体系有深入的认识,为以后扣开医疗系
统公司的大门打下坚实的基础,也更加巩固了分布式相关
的中件的实战用法,为年薪40W+增添一份可靠的技术保
障。
尚新途租房网
技术架构
SpringBoot + Spring Cloud + SpringMVC + Spring
Security + MongoDB + Redis + ElasticSearch +
Maven + Fastdfs + Docker
项目描述
租房网项目采用前后端分离架构,前端页面开发使用vue.
js,后端功能采用最新版SpringCloud框架进行开发。整
个项目包含了在线房屋租赁、房屋买卖和房屋相关的商城
功能,学完本项目后会对互联网产品的开发方式有一个更
深的理解。
⑬ 大厂面试
JVM实战和BATJ大厂面试重难点
JVM调优
JAVA执行流程 JDK&JRE&JVM JAVA字节码文件结构 类
加载-装载 类加载-链接 类加载-初始化 类加载器 双
亲委派模型 JVM内存模型 程序计数器 本地方法
栈 虚拟机栈 栈帧 栈帧的结构 栈溢出及调优
方法区 JVM执行引擎 解释器与即时编译器 JAVA对象
内存布局 JVM内存溢出和垃圾回收机制 JVM堆内存的
划分 YoungGC和OldGC 使用VisualVM监听JAVA进程
的内存模型 可达性分析 垃圾回收算法 CMS收集
器 G1收集器 如何选择垃圾收集器
JVM参数设置 JVM常用命令 堆内存文件查看工具 GC
日志查看工具 JVM监控工具 垃圾收集器效率对比
G1GC调优 G1GC调优指南 高并发环境下如何配置堆
和垃圾回收器 生产环境JVM问题的排查思路 JVM常见
面试题补充
MySQL优化
MySQL连接介绍 在服务端中查看连接信息 优化
Threads_created 查看连接超时时间 优化连接超时时
间 查看最大连接数 优化最大连接数 MySQL的架构
以及内部模块 查询缓存配置信息 开启查询缓存 查询
缓存使用 查询缓存失效的情况
SQL语句优化简介 错误日志 二进制日志 通用查询日
志 慢查询日志 执行计划简介 索引失效 分解关联
查询 优化LIMIT分页 索引选择 索引类型 普通索引
唯一索引 主键索引与组合索引 全文索引 索引优化
Tomcat调优
服务器分类 Tomcat架构介绍 Tomcat组件介绍
Tomcat处理请求过程 Tomcat目录结构 Tomcat配置
文件介绍 Tomcat连接优化 Tomcat网络优化
Tomcat压缩优化 Tomcat线程池优化 Jmeter介绍与
下载 Jmeter的使用 设置最大等待队列数 设置并行
垃圾回收器 调整年轻代大小 设置G1垃圾回收器
高并发实战和BATJ大厂面试重难点
Java并发编程核心
什么是进程 进程与程序的区别 什么是线程 并发和并
行 同步和异步 使用Jconsole观察线程 模板方法设计
模式 Thread模拟营业大厅叫号机程序 策略设计模
式 Thread与ThreadGroup JVM内存结构讲解
Thread与StackSize 守护线程 yield和sleep
线程优先级 获取线程ID和当前线程 线程interrupt中
断方法 线程isInterrupt方法 线程interrupt方法 线程
本地方法isInterrupted源码分析 join方法 join方法实
战案例 如何关闭一个线程 数据不一致问题的引入
synchronized关键字的用法 深入synchronized线程堆
栈分析 使用synchronized需要注意的问题
ThisMonitor ClassMonitor ThisMonitor和
ClassMonitor的总结 单线程通信之初识wait和
notify 多线线程通信问题 notifyAll解决多线线程通信
问题 wait和sleep的区别 脏读业务场景分析 volatile
关键字的概念 volatile关键字的非原子性
Atomica类的使用 使用wait和notify模拟阻塞队列
ThreadLocal线程局部变量安全容器 同步类容器
并发类容器之ConcurrentHashMap 并发类容器之
CopyOnWrite相关容器 并发队列之
ConcurrentLinkedQueue 并发队列之BlockingQueue
接口
多线程设计模式
SingleThreadExecution设计模式 Future设计模式讲
解 Maskter_Worker设计模式讲解 Producer_
Consumer设计模式讲解 Immutable不可变对象设计模
式 多线程上下文设计模式 Balking设计模式
GuardedSuspension设计模式 Latch设计模式
TwoPhaseTermination设计模式
线程池
线程池原理 ThreadPool接口 RunnableQueue接
口 ThreadFactory接口 DenyPolicy接口
RunnableDenyException自定义异常类 InternalTask接
口 LinkedRunnableQueue实现类 BasicThreadPool实
现类分析 自定义线程池的应用
数据结构和算法BATJ大厂面试重难点
绪论
数据结构概述 数据的逻辑结构 数据的物理结构 什
么是算法 时间复杂度的计算 常见时间复杂度介绍
最好、最坏和平均时间复杂度 算法的空间复杂度
线性表
线性表的概述 顺序表的特点 实现ArrayList 数组的反
转 找数组中重复的元素 使奇数位于偶数前面 单链表
的概述 顺序表和单链表的比较 实现
SingleLinkedList 双链表的概述 实现
DoubleLinkedList 环形链表的概述 实现
CycleSingleLinkedList
环形单链表的约瑟夫问题 单链表的反转 获取单链表
的中间节点 在O(1)时间删除单链表节点 查找单链表
倒数第k个节点 合并两个有序的单链表 判断单链表是
否有环 从有环链表中,获得环的长度 从单链表中,取
出环的起始点 复杂链表的复制
字符串和矩阵
字符串的简介 BF算法的思路分析 BF算法的代码实现
BF算法时间复杂度分析 KMP算法的思路分析 KMP算法
的next数组推导 KMP算法的代码实现 KMP算法的优
化 对称矩阵的压缩存储的思路分析 对称矩阵的压缩
存储的代码实现 三角矩阵的压缩存储 对角矩阵的压
缩存储
面试和成功求职的秘技
如何编写求职简历
论简历在求职中的重要性 如何写出更符合Java程序员
气质的简历 Java程序员如何选择简历模板 简历中的个
人信息怎么写 简历中的求职意向怎么写 简历中的教育
经历怎么写 简历中的工作经历怎么写 简历中的专业技
能怎么写 简历中的项目经历怎么写 简历中的其他内
容怎么写
面试前的准备
校招与社招的区别 简历的正确投递方式 如何应对面
试邀约 对应邀公司做背景调查 面试前的技术准备 面
试前的非技术准备 Java程序员的面试形式 现场面试
的基本流程
笔试与面试
Java程序员如何应对笔试 面试中的基本礼仪 如何解除
面试的紧张情绪 如何做好自我介绍 如何做好项目介
绍 面试中的多种问法 如何让你的回答更到位 被面试
官问住了该怎么办 面试中的一面二面与终面 如何应对
HR面试 如何有效地与HR洽谈薪水 如何了解公司福利
待遇 如何做好面试总结
正确处理入职相关事务
收到offer应该做什么 如何应对公司的背调 入职资料
的准备 如何做入职体检 如何度过入职第一天 入职
后需要注意的五件事 如何平稳度过试用期 如何做好
自己的职业规划
鼠标中键滚动放大缩小
左键按住拖动