2024Java课程体系大纲【高级开发工程师】
2023-10-10 17:47:32 0 举报
AI智能生成
从 零基础入门 至 P6职级能力要求 高质量课程设计!!体感丝滑!!融会贯通!!
作者其他创作
大纲/内容
第一阶段:零基础入门阶段
【单页面图表数据展示】
【单页面图表数据展示】
JavaSE
Java 基础语法
Java语言概述
1. Java语言发展史(了解)
2. JRE和JDK(记忆)
3. Java语言跨平台原理(理解)
4. JDK的下载和安装(应用)
第一个演示程序
0. 常用DOS命令(应用)
1. Path环境变量的配置(应用)
2. HelloWorld案例(应用)
3. Notepad++软件的安装和使用(应用)
4. HelloWorld案例常见问题(理解)
5. IDEA开发工具
java基础语法
1. 注释(理解)
2. 关键字(理解)
3. 常量(应用)
4. 数据类型(记忆、应用)
4.1 进制
4.2 进制转换
4.3 计算机中的数据存储单位
4.4 Java中的数据类型
5. 变量(应用)
5.1 变量的理解
5.2 变量的定义
5.3 使用变量时的注意事项
6. 标识符(记忆、理解)
Java中的各种运算符操作
1. 运算符
1.1 算术运算符(理解)
1.2 赋值运算符(应用)
1.3 自增自减运算符(理解)
1.4 关系运算符(比较运算符)
1.5 逻辑运算符(应用)
1.6 三元运算符(理解)
1.7 运算符优先级
2. 键盘输入(应用)
3. 类型转换(理解)
3.1 自动转换
3.2 强制转换
3.3 ASCII编码表
3.4 常量和变量的运算
流程控制语句
1. 流程控制语句分类
2. 顺序结构
3. 分支结构之if语句
3.1 if语句格式1: if
3.2 if语句格式2: if...else
3.3 if语句格式3:if...else if...else
4. 分支结构之switch语句
4.1 switch语句结构(掌握)
4.2 switch语句练习-日程表(应用)
4.3 switch语句练习-春夏秋冬(应用)
5. 循环结构之for循环
5.1 for循环结构(掌握)
5.2 for循环练习-输出数据(应用)
5.3 for循环练习-求和(应用)
5.4 for循环练习-求偶数和(应用)
5.5 for循环练习-水仙花(应用)
5.6 for循环练习-统计水仙花数个数(应用)
7. 循环结构之while循环
7.1 while结构(掌握)
7.2 while循环练习-珠穆朗玛峰(应用)
8. 循环细节
8.1 循环结构之do...while循环结构(掌握)
8.2 三种循环的区别(理解)
8.3 循环嵌套(理解)
8.4 跳转控制语句(掌握)
9. Random
9.1 Random产生随机数(掌握)
9.2 Random练习-猜数字(应用)
数组
1. 数组定义和访问
1.1 容器概述
1.2 数组概念
1.3 数组的定义
方式一
方式二
方式三
1.4 数组的访问
2. 数组原理内存图
2.1 内存概述
2.2 Java虚拟机的内存划分
2.3 数组在内存中的存储
一个数组内存图
两个数组内存图
两个变量指向一个数组
3. 数组的常见操作
3.1 数组越界异常
3.2 数组空指针异常
3.3 数组遍历【重点】
3.4 数组获取最大值元素
3.5 数组反转
方法
1. 方法入门
1.1 概述
1.2 方法的定义
1.3 方法的调用
1.4 调用练习
1.5 注意事项
2. 方法详解
2.1 定义方法的格式详解
2.2 定义方法的两个明确
2.3 调用方法的流程图解
2.4 定义方法练习
练习一
练习二
练习三
2.5 定义方法的注意事项
2.6 调用方法的方式
3. 方法重载
3.1 方法重载(理解)
3.2 方法重载练习(掌握)
4. 方法的参数传递
4.1 方法参数传递基本类型(理解)
4.2 方法参数传递引用类型(理解)
4.3 数组遍历(应用)
4.4 数组最大值(应用)
基础练习
1.Debug模式
1.1什么是Debug模式
1.2Debug模式操作流程
2.基础练习
2.1减肥计划if版本
2.1.1案例需求
2.1.2代码实现
2.2减肥计划switch版本
2.2.1案例需求
2.2.2代码实现
2.3逢七跳过
2.3.1案例需求
2.3.2代码实现
2.4不死神兔
2.4.1案例需求
2.4.2代码实现
2.5百钱白鸡
2.5.1案例需求
2.5.2代码实现
2.6数组元素求和
2.6.1案例需求
2.6.2代码实现
2.7判断两个数组是否相同
2.7.1案例需求
2.7.2代码实现
2.8查找元素在数组中出现的索引位置
2.8.1案例需求
2.8.2代码实现
2.9数组元素反转
2.9.1案例需求
2.9.2代码实现
2.10评委打分
2.10.1案例需求
2.10.2代码实现
面向对象
面向对象思想
1.1 面向对象思想概述
1.2 类和对象
什么是类
什么是对象
类与对象的关系
1.3 类的定义
事物与类的对比
类的定义格式
1.4 对象的使用
对象的使用格式
成员变量的默认值
1.5 类与对象的练习
1.6 对象内存图
一个对象,调用一个方法内存图
两个对象,调用同一方法内存图
1.7 成员变量和局部变量区别
封装
2.1 封装概述
概述
原则
2.2 封装的步骤
2.3 封装的操作—private关键字
private的含义
private的使用格式
2.4 封装优化—this关键字
this的含义
this使用格式
2.5 封装优化2——构造方法
构造方法的定义格式
注意事项
2.6 标准代码—JavaBean
static关键字
2.1 概述
2.2 定义和使用格式
类变量
静态方法
调用格式
2.3 静态原理图解
2.4 静态代码块
Arrays类
3.1 概述
3.2 操作数组的方法
3.3 练习
Math类
4.1 概述
4.2 基本运算的方法
4.3 练习
继承
3.1 概述
3.1.1 引入
3.1.2 继承的含义
3.1.3 继承的好处
3.2 继承的格式
3.3 继承案例
3.3.1 案例
3.3.2 案例图解分析
3.3.3 案例代码实现
3.4 子类不能继承的内容
3.4.1 引入
3.4.1 演示代码
3.5 继承后的特点—成员变量
3.5.1 成员变量不重名
3.5.2 成员变量重名
3.5.3 super访问父类成员变量
3.6 继承后的特点—成员方法
3.6.1 成员方法不重名
3.6.2 成员方法重名
3.7 方法重写
3.7.1 概念
3.7.2 使用场景与案例
3.7.2 @Override重写注解
3.7.3 注意事项
3.8 继承后的特点—构造器
3.8.1 引入
3.8.2 案例演示
3.9 super(...)和this(...)
3.9.1 引入
3.9.2 super和this的用法格式
3.9.3 super(....)用法演示
3.9.4 super(...)案例图解
3.9.5 this(...)用法演示
3.10 继承的特点
引用类型使用
5.1 引用类型作为方法参数和返回值
5.2 引用类型作为成员变量
抽象类
1.1 概述
1.1.1 抽象类引入
1.2 abstract使用格式
1.2.1 抽象方法
1.2.2 抽象类
1.2.3 抽象类的使用
1.3 抽象类的特征
1.4 抽象类的注意事项
1.5 抽象类存在的意义
1.6 第一个设计模式:模板模式
接口
7.1 概述
7.2 定义格式
7.3 接口成分的特点
7.3.1.抽象方法
7.3.2 常量
7.3.3 案例演示
7.4 基本的实现
7.4.1 实现接口的概述
7.4.2 实现接口的格式
7.4.3 类实现接口的要求和意义
7.4.4 类与接口基本实现案例
7.4.5 类与接口的多实现案例
7.5 接口与接口的多继承
7.6 JDK 8之后的接口新增方法
7.6.1 含有默认方法和静态方法
7.6.2 含有私有方法和私有静态方法
7.6.3 新增方法的使用
7.7 实现多个接口使用注意事项
7.7.1 多个接口同名静态方法
7.7.2 优先级的问题
多态
1.1 多态的形式
1.2 多态的案例演示
1.3 多态的定义和前提
1.4 多态的好处
1.5 多态的弊端
1.6 引用类型转换
1.6.1 为什么要转型
1.6.2 向上转型(自动转换)
1.6.3 向下转型(强制转换)
1.6.4 案例演示
1.6.5 转型的异常
1.6.6 instanceof关键字
内部类
2.1 概述
2.1.1 什么是内部类
2.1.2 什么时候使用内部类
2.2 内部类的分类
2.3 静态内部类
2.4 实例内部类
2.5 实例内部类面试题
2.6 局部内部类
2.7 匿名内部类【重点】
2.7.1 概述
2.7.2 引入
2.7.3 匿名内部类前提和格式
2.7.4 使用方式
2.7.5 匿名内部类的特点
2.7.6 匿名内部类的使用场景
相关知识点
第一章 - 匿名对象
1.1 概念
1.2 应用场景
第二章 包和权限修饰符
2.1 包
2.2 权限修饰符
2.3 不同权限的访问能力
第三章 代码块
3.1 引入
3.2 静态代码块
3.3 实例代码块
第四章 final关键字
4.1 概述
4.2 使用方式
4.2.1 修饰类
4.2.2 修饰方法
4.2.3 修饰变量-局部变量
4.2.4 修饰变量-实例成员变量
第五章 单例设计模式
5.1 单例设计模式的作用
5.2 单例设计模式实现步骤
5.3 单例设计模式的类型
5.4 饿汉单例设计模式
5.5 懒汉单例设计模式
第六章 枚举
6.1 不使用枚举存在的问题
6.2 枚举的作用与应用场景
6.3 枚举的基本语法
6.3.1 枚举的概念
6.3.2 定义枚举的格式
6.3.3 入门案例
6.3.4 枚举的其他内容
6.4 应用场景
6.5 枚举的应用
Java API帮助文档
API帮助文档使用
概述
API使用步骤
Scanner类
2.1 什么是Scanner类
2.2 引用类型使用步骤
导包
创建对象
调用方法
2.3 Scanner使用步骤
2.4 练习
求和
取最值
Random类
3.1 什么是Random类
3.2 Random使用步骤
3.3 练习
获取随机数
猜数字小游戏
String类
4.1 String类概述
概述
特点
4.2 使用步骤
4.3 常用方法
判断功能的方法
获取功能的方法
转换功能的方法
分割功能的方法
4.4 String类的练习
拼接字符串
统计字符个数
StringBuilder类
4.1 字符串拼接问题
4.2 StringBuilder概述
4.3 构造方法
4.4 常用方法
Object类
1. Object类
1.1 概述
1.2 toString方法
方法摘要
覆盖重写
toString方法源代码解析
1.3 equals方法
方法摘要
默认地址比较
对象内容比较
2. Objects类
2.1 equals方法
2.2 isNull
Date类
6.1 Date概述
6.2 Date常用方法
DateFormat类
7.1 构造方法
7.2 格式规则
7.3 常用方法
Calendar类
8.1 概述
8.2 常用方法
8.3 get方法示例
8.4 set方法示例
8.5 add方法示例
Math类
9.1 概述
9.2 常用方法
9.3 示例代码
System类
10.1 概述
10.2 常用方法
gc方法
arraycopy方法
10.3 练习
BigDecimal类
11.1 引入
11.2 概述
11.3 构造方法
11.4 常用方法
包装类
12.1 概述
12.2 Integer类
12.3 装箱与拆箱
12.4 自动装箱与自动拆箱
12.5 基本类型与字符串之间的转换
基本类型转换为String
String转换成基本类型
Java 集合
Collection接口
1.1 集合的引入
1.2 集合概述
1.3 集合常用类的继承体系
1.4 Collection 常用API
ArrayList类
2.1 什么是ArrayList类
2.2 ArrayList使用步骤
2.3 常用方法和遍历
2.4 如何存储基本数据类型
2.5 ArrayList练习
数值添加到集合
对象添加到集合
ArrayList类型作为参数
ArrayList类型作为返回值
Iterator迭代器
2.1 Iterator接口
2.2 迭代器的实现原理
2.3 增强for
泛型
4.1 泛型概述
4.2 使用泛型的好处
4.3 泛型的定义与使用
定义和使用含有泛型的类
含有泛型的方法
含有泛型的接口
4.4 泛型通配符
通配符基本使用
通配符高级使用
数据结构
5.1 数据结构介绍
5.2 常见数据结构
栈
队列
数组
链表
树
5.3. 树基本结构介绍
二叉树
二叉查找树/二叉排序树
平衡二叉树
概述
旋转
左左
左右
右左
右右
红黑树
概述
红黑树的特性
平衡二叉树和红黑树的区别
红黑树的构建过程
红黑树保持平衡操作1:变色
红黑树保持平衡操作2:旋转
List接口
3.1 List接口介绍
3.2 List接口中常用方法
3.3 ArrayList集合
3.4 LinkedList集合
Set接口
4.1 HashSet集合介绍
4.2 HashSet集合存储数据的结构(哈希表)
4.3 HashSet存储自定义类型元素
4.4 LinkedHashSet
4.5 TreeSet集合
1. 特点
2. 演示
Collections集合工具类
5.1 Collections常用功能
5.2 Comparator比较器
5.3 可变参数
集合综合案例
6.1 案例介绍
6.2 案例分析
6.3 代码实现
Arrays 数组工具类
第一章 排序算法介绍
1.1 冒泡排序
1.1.1 冒泡排序概述
1.1.2 冒泡排序图解
1.1.3 冒泡排序代码实现
1.2 选择排序
1.2.1 选择排序概述
1.2.2 选择排序图解
1.2.3 选择排序代码实现
第二章 数组的二分查找法
2.1 普通查找和二分查找
2.2 数组元素的普通查找法
2.3 二分查找原理
2.4 二分查找图解
2.5 二分查找代码实现
第三章 Arrays工具类的使用
3.1 工具类Arrays的用法
3.2 自定义操作数组的工具类MyArrays
Map集合
1.1 概述
1.2 Map的常用子类
1.3 Map的常用方法
1.4 Map的遍历
方式1:键找值方式
方式2:键值对方式
1.5 HashMap存储自定义类型
1.6 LinkedHashMap介绍
1.7 TreeMap集合
1.TreeMap介绍
2.演示
1.8 Map集合练习
经典案例:模拟斗地主洗牌发牌
2.1 案例介绍
2.2 案例需求分析
2.3 实现代码步骤
经典案例:图书管理系统
3.1 图书管理系统项目演示
3.2 图书管理系统之标准Book类
3.3 图书管理系统之主界面和选择的实现
3.4 图书管理系统之查询所有图书
3.5 图书管理系统之添加图书
3.6 图书管理系统之删除图书
3.7 图书管理系统之修改图书
3.8 Debug追踪调试
Java 线程
异常
1.1 异常概念
1.2 异常体系
1.3 异常分类
1.4 异常的产生过程解析
1.5 异常的处理
1.5.1 抛出异常throw
1.5.2 Objects非空判断
1.5.3 声明异常throws
1.5.4 捕获异常try…catch
1.5.5 finally 代码块
1.5.6 异常注意事项
1.6 自定义异常
1.6.1 概述
1.6.2 自定义异常的练习
多线程
2.1 并发与并行
2.2 线程与进程
进程
线程
线程调度
2.3 Thread类
2.4 创建线程方式一_继承方式
2.5 创建线程的方式二_实现方式
2.6 匿名内部类方式
Lamda函数式编程
Lamda表达式
1.1 函数式编程思想概述
1.2 Lambda的优化
1.3 Lambda的格式
标准格式:
参数和返回值:
省略格式:
1.4 Lambda的前提条件
函数式接口
2.1 概述
格式
自定义函数式接口
FunctionalInterface注解
2.2 常用函数式接口
Supplier接口
Consumer接口
Function接口
Predicate接口
方法引用
1.1 概述
冗余的Lambda场景
方法引用简化
1.2 方法引用符
1.3 常见引用方式
对象名--引用成员方法
类名--引用静态方法
类--构造引用
数组--构造引用
stream流
2.1 引言
2.2 流式思想概述
2.3 获取流方式
2.4 常用方法
forEach : 逐一处理
count:统计个数
filter:过滤
limit:取用前几个
skip:跳过前几个
map:映射
concat:组合
2.5 Stream综合案例
2.6 函数拼接与终结方法[了解]
2.7 收集Stream结果
收集到集合中
收集到数组中
线程状态
2.1 线程状态概述
2.2 睡眠sleep方法
2.3 等待和唤醒
2.4 等待唤醒案例(包子铺卖包子)
线程安全
1.1 线程安全
1.2 线程同步
1.3 同步代码块
1.4 同步方法
JMM内存模型与volatile
1 看程序说结果
2. 解决办法: java.util.concurrent:
3. JMM(Java Memory Model)
4. volatile关键字
4.1 可⻅性
4.2 原⼦性
4.3 有序性
原子性CAS
CAS概述
CAS底层原理
CAS不足
CAS会导致"ABA问题"
AtomicReference原⼦引⽤
ABA问题的解决(AtomicStampedReference 类似于时间戳)
线程锁机制
⼈⼯窗⼝排队购票(回顾)
公平锁⾮公平锁(⽕⻋站⼈⼯窗⼝排队购票)
Lock锁
可重⼊锁/递归锁
锁的配对
⾃旋锁
读写锁/独占/共享
并发包
并发编程
3.1 ArrayList与CopyOnWriteArrayList
CopyOnWriteArrayList
3.2 Set与CopyOnWriteArraySet
HashSet和HashMap
Map与ConcurrentHashMap
3.3 ConcurrentHashMap
并发包常用类
3.4 CountDownLatch
原理
3.5 CyclicBarrier
概述
使用场景
原理
3.6 Semaphore
原理
3.7 Exchanger
概述
使用场景
阻塞队列
阻塞队列
SynchronousQueue
阻塞队列的应⽤——⽣产者消费者
传统模式
⽣产者消费者防⽌虚假唤醒(执⾏原理分析)
新版⽣产者消费者写法ReentrantLock.Condition
精准通知顺序访问
Synchronized和Lock的区别
阻塞队列模式⽣产者消费者
线程池
3.1 线程池的思想
3.2 线程池概念
3.3 线程池的使用
3.4 线程池的练习
线程池基本概念
线程池三种常⽤创建⽅式
newFixedThreadPool线程池:
newSingleThreadExecutor线程池:
newCachedThreadPool线程池:
线程池代码演示
线程池创建的七个参数
线程池底层原理
线程池的拒绝策略
AbortPolicy拒绝策略
CallerRunsPolicy拒绝策略
DiscardOldestPolicy拒绝策略
DiscardPolicy拒绝策略
实际⽣产使⽤哪⼀个线程池?
⾃定义线程池参数选择
死锁
死锁编码
死锁的定位
LockSupport
LockSupport详解
为什么要使⽤LockSupport
AQS之AbstractQueuedSynchronizer
AQS是什么?
AQS内部体系架构
AQS获取锁流程
Java IO流
File类
1.1 概述
1.2 构造方法
1.3 常用方法
获取功能的方法
绝对路径和相对路径
判断功能的方法
创建删除功能的方法
1.4 目录的遍历
递归
2.1 概述
2.2 递归累和
计算1 ~ n的和
代码执行图解
2.3 递归求阶乘
2.4 文件搜索
IO概述
1.1 什么是IO
1.2 IO的分类
1.3 IO的流向说明图解
1.4 顶级父类们
字节流
2.1 一切皆为字节
2.2 字节输出流【OutputStream】
2.3 FileOutputStream类
构造方法
写出字节数据
数据追加续写
写出换行
2.4 字节输入流【InputStream】
2.5 FileInputStream类
构造方法
读取字节数据
2.6 字节流练习:图片复制
复制原理图解
案例实现
字符流
1.1 字符输入流【Reader】
1.2 FileReader类
构造方法
读取字符数据
1.3 字符输出流【Writer】
1.4 FileWriter类
构造方法
基本写出数据
关闭和刷新
写出其他数据
缓冲流
1. IO资源的处理
JDK7前处理
JDK7的处理
2. 属性集
2.1 概述
2.2 Properties类
构造方法
基本的存储方法
与流相关的方法
3. 缓冲流
3.1 概述
3.2 字节缓冲流
构造方法
效率测试
3.3 字符缓冲流
构造方法
特有方法
3.4 练习:文本排序
案例分析
案例实现
转换流
1.1 字符编码和字符集
字符编码
字符集
1.2 编码引出的问题
1.3 InputStreamReader类
构造方法
指定编码读取
1.4 OutputStreamWriter类
构造方法
指定编码写出
转换流理解图解
1.5 练习:转换文件编码
案例分析
案例实现
序列化流
1.1 概述
1.2 ObjectOutputStream类
构造方法
序列化操作
1.3 ObjectInputStream类
构造方法
反序列化操作1
反序列化操作2
1.4 练习:序列化集合
案例分析
案例实现
打印流
1 打印流
1.1 概述
1.2 PrintStream类
2 RandomAccessFile
2.1 RandomAccessFile概述
2.2 RandomAccessFileAPI介绍
构造方法
成员方法
3 装饰设计模式
3.1 装饰模式概述
3.2 案例演示
准备环境
需求
实现步骤
实现代码
测试结果
3.3 装饰模式小结
commons-io
1 commons-io工具包
1.1 概述
1.2 使用
1.3 常用API介绍
2 Base64
2.1 Base64概述
2.2 Base64内嵌类和方法描述
2.3 Base64代码演示
网络编程
网络编程概述
1.1软件结构
1.2 网络通信协议
1.3 协议分类
1.4 网络编程三要素
协议
IP地址
端口号
TCP通信程序
1.1 概述
1.2 Socket类
构造方法
成员方法
1.3 ServerSocket类
构造方法
成员方法
1.4 简单的TCP网络程序
TCP通信分析图解
客户端向服务器发送数据
服务器向客户端回写数据
1.5 文件上传案例
文件上传分析图解
案例实现
1.6 模拟B\S服务器
案例分析
案例实现
NIO
1. NIO概述
2. NIO
2.1 Channel(通道)
2.2 Buffer
2.3 Selector
1.如何创建一个Selector
2.注册Channel到Selector
3.关于SelectionKey
(1) Interest set
(2) Ready Set
(3) Channel 和 Selector
(4) Attach一个对象
4.关于SelectedKeys()
3. NIO2(==AIO)(异步、非阻塞)
注解反射
反射
1.1 反射的概述
1.1.1 反射的引入
1.1.2 反射的概念
1.1.3 使用反射操作类成员的前提
1.1.4 反射在实际开发中的应用
1.2 Class对象的获取方式
1.2.1 三种获取方法
1.2.2 Class类常用方法
1.3 反射之操作构造方法
1.3.1 Constructor类概述
1.3.2 Class类中与Constructor相关的方法
1.3.3 Constructor对象常用方法
1.3.4 示例代码
1.4 反射之操作成员方法
1.4.1 Method类概述
1.4.2 Class类中与Method相关的方法
1.4.3 Method对象常用方法
1.4.4 示例代码
1.5 反射之操作成员变量
1.5.1 Field类概述
1.5.2 Class类中与Field相关的方法
1.5.3 Field对象常用方法
1.5.4 示例代码
注解
2.1 注解的概述
2.1.1 注解的概念
2.1.2 注解的作用
3.1.3 常见注解
2.2 Junit 注解使用
2.3 自定义注解
2.3.1 定义格式
2.3.2 注解的属性
2.4 使用自定义注解
2.4.1 定义和注解
2.4.2 使用注解
2.4.3 特殊属性value
2.5 注解之元注解
2.6 注解解析
2.6.1 需求说明
2.6.2 代码实现
2.7 注解案例
2.7.1 案例说明
2.7.2 案例分析
2.7.3 案例代码
单元测试JUnit
2.1 什么是JUnit?
2.2 基本使用
2.3 常用注解
XML
1. 什么是XML?
2. XML语法
2.1 文档声明
2.2 元素
2.3 属性
2.4 注释
2.5 转义字符
3. 文档约束
3.1 DTD约束
什么是DTD?
重点要求
案例实现
3.2 Schema约束
什么是Schema?
重点要求
案例实现
4. 代码解析XML
4.1 XML解析概述
常见三种解析方式:
解析原理:结构模型
4.2 API使用
SaxReader对象
Document对象
Element对象
4.3 案例:XML解析
5. XPath解析XML
5.1 使用dom4j支持xpath具体操作
5.2 xpath表达式常用查询形式
5.3 案例:XPath解析XML
综合案例:BS服务器改进,配置文件设置端口号
MySQL / JDBC
MySQL
数据库介绍
1.1 数据库概述
什么是数据库?
什么是关系型数据库
什么是数据库管理系统?
数据库与数据库管理系统的关系?
1.2 数据库表
1.3 表数据
1.4 常见数据库管理系统
MySql数据库
2.1 什么是MySQL?
2.2 安装
2.3 登录
SQL语句
3.1 SQL概述
SQL语句介绍
SQL作用
SQL语句分类
SQL通用语法
3.2 DDL之数据库操作:database
1)创建数据库
2)查看数据库
3)删除数据库(慎用)
4)修改数据库
5)其他数据库操作命令
3.3 DDL之表操作:table
1)创建表
字段类型
单表约束
注意
2)查看表
3)快速创建一个表结构相同的表
4)删除表
5)修改表:
3.4 DML数据操作语言
1)插入记录:insert
2)更新记录:update
3)删除记录:delete & truncate
SQL约束
4.1 主键约束
添加主键约束
删除主键约束
4.2 自动增长列
4.3 非空约束
4.4 唯一约束
添加唯一约束
删除唯一约束
FQA
01-MySQL数据库密码重置
02-DOS操作数据乱码解决
SQL语句之DQL
1.1 准备工作
1.2 简单查询
1.3 条件查询
1. 运算符
2. 逻辑运算符
3. in 关键字
4. 指定范围中 between...and
5. 模糊查询 like 关键字
1.4 排序
1.5 聚合函数(组函数)
1.6 分组查询
1.7 分页查询
数据库备份与恢复
2.1 备份
1)MySQL命令备份
2)可视化工具备份
2.2 恢复
1)命令恢复
2) 可视化工具恢复
多表操作
4.1 多表之间的关系
1)一对一关系
外键唯一
主键做外键
2)一对多关系
3)多对多关系
4.2 多表连接查询
4.2.1 多表查询的作用
4.2.2 准备数据
4.2.3 笛卡尔集
1)如何产生
2)如何消除
4.2.4 内连接
1)隐式内连接(使用 where 关键字来指定条件)
2)显示内连接(使用 inner..join..on 语句)
4.2.5 外连接
1)左外连接
2)右外连接
4.3 一对多操作案例
分析
实现:分类和商品
操作
4.4 多对多操作案例
分析
实现:订单和商品
操作
1. 多表查询之子查询
1.1 初始化数据
1.2 什么是子查询?
1.3 常见三种做法
1)单行单列
2)多行单列
3)多行多列
事务
2.1 事务原理
1) 什么是事务?
2) 事务基本特性
3) 事务并发问题【事务隔离不足导致】
4) 事务隔离级别
2.2 手动提交
1)核心 SQL 语句
2)实现过程
3)事务提交
4)事务回滚
2.3 自动提交
1)自动提交事务
2)取消自动提交
2.4 事务案例:
3. DCL
3.1 创建用户
3.2 授权
3.3 撤销授权
3.4 查看权限
3.5 删除用户
3.6 修改用户的密码
JDBC 待完善
JDBC概述
预处理与批处理、JDBCAPI详解
JDBC事务
连接池概述、(Druid)API使用
Maven / Mybatis 框架
Maven 基础
1. Maven简介
1.1 什么是Maven?
1.2 下载&安装
1.3 概念模型
2. 基本概念
2.1 仓库
2.1.1 什么是Maven的仓库?
2.1.2 本地仓库配置
2.1.3 国内镜像仓库配置
2.2 坐标、依赖、打包和安装
2.3 Maven项目工程标准结构
3. 生命周期和插件
3.1 Maven常用命令和插件
3.2 生命周期
4. 依赖管理
4.1 依赖范围
什么是依赖范围?
4.1.1 分类
4.1.2 如何设置依赖范围
4.2 依赖传递
4.3 依赖调节原则
4.4 依赖排除
Mybatis 框架
1. 框架介绍
1.1 什么是框架
1.2 框架要解决的问题
1.3 JDBC代码
1.3.1 JDBC中代码问题分析
1.3.2 优化JDBC代码
2. Mybatis框架
2.1 概述
2.2 Mybatis案例
2.3 Java中的日志组件(扩展内容)
3. Mybatis实现CRUD操作
3.1 根据id查询
3.2 模糊查询
方式一(#{}):
方式二(${}):
#{}与${}区别:
3.3 新增操作
3.4 修改操作
3.5 删除操作
4. Mybatis的两种Dao层开发方式
4.1 Dao层开发方式1--原始Dao开发方式
4.2 Dao层开发方式2--动态代理开发
5. 全局配置文件SqlMapConfig.xml
核心配置文件--properties全局属性配置
核心配置文件--typeAliases注册别名
核心配置文件--mappers
核心配置文件--顺序
6.Mybatis参数类型和结果类型
参数类型parameterType配置
返回值resultType映射
返回值resultMap
1. Mybatis连接池
2. 动态SQL语句
2.1 if标签和where标签
2.2 set标签
2.3 sql标签
2.4 foreach语句
3. Mybatis的多表关联查询
3.1 一对一查询
3.2 一对多查询
3.3 多对多查询
1. Mybatis延迟加载
1.1 一对一延迟加载案例
1.2 一对多延迟加载案例
1.3 开启全局延迟加载
2. Mybatis缓存
2.1 一级缓存
2.2 二级缓存
3. Mybatis注解开发
3.1 基于注解实现增删改查
3.2 基于注解实现一对一关联查询
3.3 基于注解实现一对多关联查询
前端
HTML5
HTML概述
HTML基础语法和书写规范
HTML常用标签
CSS
CSS基础概述
常用CSS样式|
JavaScript
JavaScript基础语法
内置对象
BOM浏览器对象模型
DOM
JS事件
正则表达式
VUE 基础
数据双向绑定
JSON 数据格式
VUE 对象
EL
Data
Methods
VUE 常用指令
单向绑定 & 双向绑定
v-on
v-for
v-if
Vue 生命周期和钩子函数
异步
WEB核心基础
Http 协议 / Tomcat
HTTP协议
HTTPS协议
Tomcat容器介绍
Tomcat下载与安装
Tomcat常见配置
问题与解决方案
Tomcat核心文件解析
Tomcat项目发布
Servlet / Request / Response
Servlet
Servlet基本概述
Servlet入门
Servlet的配置
Servlet的执行过程
Request
request对象概述
请求对象的API方法介绍
获取请求消息头
获取请求正文
用流获取请求正文
请求转发
Response
response对象概述
response对象常用方法简介
输出响应正文
设置响应消息头
重定向
Cookie / Session
Cookie
什么是会话
会话技术能解决什么问题
认证机制简介
cookie
Session
HttpSession
Filter / Listener
Filter
过滤器简介
应用场景
入门案例
过滤器的执行过程
过滤器案例
Listener
监听器简介
SpringBoot
SpringBoot 基础
springboot入门
springboot使用方法
事务管理
配置日志
拦截器
全局异常处理
访问静态资源
配置文件
工程部署
springboot整合其他框架
springboot整合mybatis
springboot整合Junit
Echarts
Echarts 图表制作
Echarts快速入门
JSON 格式解读
线形图
饼状图
柱状图
阶段学习达成作品
项目初体验 -- 访抖音电商 巨量千川 数据主屏
项目初体验 -- 中国航空 数据主屏
第二阶段:零基础框架阶段
【前后端分离开发 - 单体项目】
【前后端分离开发 - 单体项目】
Spring 框架 / SprinMVC 框架
Spring
spring基础
spring概述
Spring概述
Spring发展历程
Spring的优势
Spring的体系结构
Spring核心之IOC的概念和作用
程序的耦合和解耦
解决程序耦合的思路
控制反转
工厂模式
什么是工厂模式
简单工厂模式
工厂方法模式
抽象工厂模式
使用工厂模式实现IOC(控制反转)
使用Spring的IOC解决程序耦合
案例需求
案例前期准备
基于xml的配置入门案例
spring相关API
spring 配置文件
实例化 Bean 的三种方式
使用默认无参构造函
spring管理静态工厂-使用静态工厂的方法创建对象
spring管理实例工厂-使用实例工厂的方法创建对象
spring的依赖注入
依赖注入的概念
构造函数注入
set方法注入
使用 p 名称空间注入数据
注入集合属性
spring高级
基于注解的IOC配置
环境搭建
基于注解实现IOC
常用注解
总结spring常用注解
Spring的纯注解配置
spring纯注解之自定义对象管理
spring纯注解之第三方技术对象管理
Spring整合Junit
测试类中的问题和解决思路
配置步骤
动态代理
代理模式
动态代理概述
jdk动态代理重点类和方法
jdk动态代理案例演示
cglib动态代理介绍
cglib动态代理案例演示
动态代理总结
springAOP
Spring核心之AOP相关概念
AOP概述
AOP的作用
AOP的实现方式
AOP的具体应用
ThreadLocal介绍
自定义事务管理器
Spring中的AOP
AOP概念和实现原理
AOP相关术语
学习Spring中的AOP要明确的事
Spring的AOP两种实现方式
基于XML的AOP配置
基于注解的AOP配置
不使用XML的纯注解配置
事务
Spring中事务控制
Spring事务控制的API介绍
Spring基于XML的声明式事务控制
基于注解的配置方式
SpringMVC
SpringMVC基础一
13.1 SpringMVC的基本概念
13.1.1 关于三层架构和MVC
13.1.2 SpringMVC概述
13.1.3 SpringMVC的优势
13.1.4 SpringMVC在三层架构中的位置
13.2 SpringMVC的入门案例
13.2.1 SpringMVC的入门案例
13.2.2 入门案例的执行过程及原理分析
13.2.3 入门案例中涉及的组件
13.3 RequestMapping注解详解
13.3.1 RequestMapping概述
13.3.2 限制请求路径操作演示
13.3.3 限制请求类型操作演示
13.3.4 限制请求参数操作演示
第十四单元 SpringMVC基础二
14.1 请求参数绑定
14.1.1 支持的数据类型
14.1.2 使用的要求
14.1.3 绑定机制
14.2 中文乱码处理
14.2.1 中文乱码问题演示
14.2.2 解决中文乱码
14.3 释放静态资源
14.3.1 释放静态资源方式一(了解)
14.3.2 释放静态资源方式二
14.3.3 释放静态资源方式三
14.4 常用注解
14.4.1 RequestParam
14.4.2 RequestBody
14.4.3 ResponseBody
14.4.4 PathVaribale
14.4.5 ModelAttribute
第十五单元 SpringMVC高级一
15.1 响应数据和结果视图
15.1.1 案例环境准备
15.1.2 页面跳转之转发
15.1.3 转发过程数据传递
15.1.4 页面跳转之重定向
15.2 SpringMVC实现文件上传
15.2.1 文件上传的回顾
15.2.2 文件上传流程
15.2.3 SpringMVC文件上传案例
15.3 SpringMVC中的异常处理
15.3.1 异常处理的思路
15.3.2 方式一:自定义异常处理器
15.3.3 方式二:使用@ControllerAdvice注解实现异常处理器
第十六单元 SpringMVC高级二
16.1 SpringMVC中的拦截器
16.1.1 拦截器的作用
16.1.2 自定义拦截器的步骤
16.1.3 拦截器的细节
16.1.4 正常流程测试
16.1.5 中断流程测试
16.1.6 拦截器的简单案例
16.2 SSM整合
16.2.1 需求说明
16.2.2 mybatis环境搭建
16.2.3 spring环境搭建
16.2.4 spring整合mybatis
16.2.5 测试spring整合mybatis
16.2.6 springmvc环境搭建
16.2.7 spring整合springmvc
16.2.8 账户新增
16.2.9 账户修改
16.2.10 账户删除
Maven
Maven 高级
maven高级
1.1 分模块构建工程(聚合工程)
1.1.1 需求描述
1.1.2 理解继承和聚合
1.2 构建maven-parent父模块
1.2.1 创建父工程
1.2.2 定义pom.xml
1.2.3 将父工程发布至仓库
1.3 构建ssm_dao子模块
1.3.1 创建dao子工程
1.3.2 定义pom.xml
1.3.3 数据库准备
1.3.4 dao 代码
1.3.5 配置文件
1.3.6 单元测试
1.3.7 把 dao 模块 install 到本地仓库
1.4 构建ssm_service子模块
1.4.1 创建service子工程
1.4.2 定义pom.xml
1.4.3 service 代码
1.4.4 配置文件
1.4.5 依赖范围对传递依赖的影响【了解】
1.4.6 单元测试
1.4.7 Install 到本地仓库
1.5 构建ssm_web子模块
1.5.1 创建web子工程
1.5.2 定义pom.xml
1.5.3 controller 代码
1.5.4 配置文件
1.5.5 运行调试
1.6 聚合工程依赖整合
1.6.1 pom.xml添加依赖
1.7 maven 私服
1.7.1 需求分析
1.8 搭建私服环境
1.8.1 下载 nexus
1.8.2 安装 nexus
1.8.3 卸载 nexus
1.8.4 启动 nexus
1.8.5 仓库类型
1.9 将项目发布到私服
1.9.1 需求分析
1.9.2 配置
1.9.3 测试
1.10 从私服下载jar包
1.10.1 需求分析
1.10.2 在setting.xml中配置仓库
1.10.3 测试从私服下载 jar 包
1.11 第三方jar包放入本地仓库或私服
1.11.1 导入本地库
1.11.2 导入私服
1.11.3 参数说明
SpringBoot
SpringBoot 高级
第二单元 SpringBoot进阶
2.2 springboot整合redis
2.2.1 spring-data-redis技术简介
2.2.2 入门案例演示
2.2.3 介绍redisTemplate操作5种数据类型常用API
springboot运行原理
主类分析
运行流程
运行原理
2.3 springboot自动装配流程分析
2.3.1 spring boot自动装配原理概述
2.3.2 Java SPI
2.3.3 spring boot的扩展机制之Spring Factories
2.3.4 spring boot自动配置@EnableAutoConfiguration
2.4 自定义起步依赖
2.4.1 自定义起步依赖步骤介绍
2.4.2 搭建工程自定义起步依赖
2.4.3 测试自定义起步依赖效果
MyBatis-Plus
MybatisPlus
5.1 Mybaits Plus简介
5.1.1 走进Mybaits Plus
5.2 快速入门
5.2.1 Mybaits Plus之HelloWorld
5.3 标准数据层开发
5.3.1 Mybatis Plus CRUD
5.3.2 Mybatis Plus 分页
5.4 DQL编程控制
5.4.1 条件查询方式
5.4.2 查询投影
5.5 DML编程控制
5.5.1 Id生成策略
5.5.2 逻辑删除
5.5.3 乐观锁
缓存 Redis
Redis 基础
redis 介绍
4.1.1 什么是 Nosql★★★★
4.1.2 Redis 历史发展(了解)★★★★
4.1.3 什么 redis★★★★
4.1.4 Redis 的应用场景★★★★
4.2 安装和启动 redis
4.2.1 下载 redis★★★★
4.2.2 安装 redis★★★★
4.2.3 运行 redis★★★★
4.2.4 测试 redis★★★★
4.2.5 Redis 多数据库★★★
4.3 数据类型-String
4.3.1 String 类型介绍★★★★
4.3.2 命令★★★★
4.3.3 应用★★★★
4.4 数据类型-Hash
4.4.1 Hash 介绍★★★★★
4.4.2 命令★★★★★
4.4.3 应用★★★★
4.5 数据类型-list
4.5.1 list 介绍★★★
4.5.2 命令★★★
4.5.3 应用★★
4.6 数据类型-set
4.6.1 set 介绍★★★
4.6.2 命令★★★
4.6.3 应用★★
4.7 数据类型-sorted(zset)
4.7.1 Sorted set 介绍★★★
4.7.2 命令★★★
4.7.3 应用★★
4.8 Keys 命令
4.8.1 设置 key 的生存时间★★★★★
4.8.2 其他命令★★
4.8.3 应用★★★★
4.9 springdataredis的使用
4.9.1 springdataredis介绍★★★★★
4.9.2 springdataredis的使用★★
4.10 持久化
4.10.1 RDB 持久化★★★
4.10.2 AOF 持久化★★★
4.11 主从复制
4.11.1 什么是主从复制★★★
4.11.2 主从配置★★★★
4.11.3 主从复制过程★★★★
redis其他功能
过期 key 的删除策略
Redis 事务
LRU Cache 实现
前端进阶 VUE ElementUI
ElementUI
8.1 Element-UI介绍
8.1.1 需求分析★★★
8.1.2 分页语法与代码★★★
8.1.3 分页语法★★★★★
8.1.4 分页代码★★★
8.1.5 分页查询逻辑★★★★★
8.1.6 页码渲染★★★★★
8.1.7 页码数量控制★★★★★
8.1.8 上一页与下一页★★★★★
8.2 Element UI 使用
8.2.1 安装ElementUI
8.2.2 使用ElementUI hello World
8.3 ElementUI案例
8.3.1 用户登录界面
8.3.2 首页布局页面
8.3.3 课程列表组件
8.3.4 Tabel表格插件
8.3.5 课程内容制作
移动端 (微信小程序、Uniapp)
代码管理
Git
5.1 Git介绍
5.1.1 什么是Git
5.1.2 版本控制分类
5.1.3 GitHub&Gitee介绍
5.2 Git操作前准备工作
5.2.1 安装Git
5.2.2 idea集成Git
5.2.3 创建Gitee账号
5.2.4 创建远程仓库
5.3 发布
5.3.1 创建Git本地仓库
5.3.2 添加暂存区
5.3.3 提交本地仓库
5.3.4 推送文件到远程仓库
5.3.5 推送项目到远程仓库
5.4 删除工程
5.4.1 删除工程
5.4.2 克隆工程
5.5 提交&更新代码
5.5.1 修改工程代码
5.5.2 提交并推送
5.6 分支使用
5.6.1 分支使用
5.6.2 创建分支
5.6.3 合并分支
5.7 冲突解决
5.7.1 场景模拟
5.7.2 提交代码
5.7.3 解决冲突
5.7.4 如何避免冲突介绍
5.8 历史记录
5.8.1 查看历史版本
5.8.2 回退到历史版本
开发者平台
阿里云
微信开发平台
支付宝开发平台
阶段学习达成作品
【前后端分离项目】
【前后端分离项目】
手机移动端
后台数据管理
第三阶段:能力进阶 P6 实战 + P6 应用
【前后端分离开发 - 微服务集群部署项目】
【前后端分离开发 - 微服务集群部署项目】
启航篇
项目背景介绍
互联网产品研发全流程
项目开发流程
项目开发流程下来需要些多少份文档
市场研究报告
新产品项目立项书
根据用户的需求,准备一个立项书,介绍项目背景、项目目标、建设内容、主要功能、项目排期、系统支撑等,其作用是给双方一个明确的项目定义,确定需求范围
新产品项目启动会
确定所做的事情是什么?
把相关领导和团队成员(技术、测试、设计、运维、运营、销售等)召集在一起,同步项目背景和预期时间
制定里程牌计划
PRD需求评审
PRD需求文档
原型设计
功能设计
非功能性需求
性能
读写响应时间
安全性
架构设计
项目总体业务流程图
项目功能架构图
项目系统架构图
数据库设计
接口设计
接口设计
画交互时序图
测试用例
规范设计
编码规范设计
环境搭建
课程内容
01-简介
项目介绍
项目整体效果展示
项目微服务架构图
02-环境配置
linux安装docker
docker安装mysql
docker安装redis
配置git
数据库初始化
核心技术点
VMWare搭建Linux系统
阿里云 ECS 服务器,搭建 CentOS 系统
Docker安装mysql, redis等镜像
配置码云(gitee), 开发工具Idea, 数据库等软件开发环境
快速开发入门
课程内容
01-逆向工程
逆向工程搭建&使用
配置&测试微服务基本CRUD功能
逆向生成所有微服务基本CRUD代码
02-前端基础
前端基础-ES6-let&const
前端基础-ES6-解构&字符串
前端基础-ES6-箭头函数
前端基础-ES6-对象优化
前端基础-ES6-map、reduce
前端基础-ES6-promise异步编排
前端基础-ES6-模块化
前端基础-Vue-介绍&HelloWorld
前端基础-Vue-基本语法&插件安装
前端基础-Vue-指令-单向绑定&双向绑定
前端基础-Vue-指令-v-on、v-for、v-if
前端基础-Vue-计算属性和侦听器
前端基础-Vue-组件化基础
前端基础-Vue-生命周期和钩子函数
前端基础-Vue-使用Vue脚手架进行模块化开发
前端基础-Vue-整合ElementUI快速开发
ES6新特性,本项目中使用
Vue开发常用组件, 本项目中使用
03-前端uniapp
前端-uniapp-介绍
前端-uniapp-项目结构展示
04-SpringCloud Alibaba
SpringCloud Alibaba-Nacos注册中心
SpringCloud-OpenFeign测试远程调用
SpringCloud Alibaba-Nacos配置中心-简单示例
SpringCloud Alibaba-Nacos配置中心-命名空间与配置分组
SpringCloud Alibaba-Nacos配置中心-加载多配置集
SpringCloud-Gateway网关核心概念&原理
SpringCloud-Gateway-创建&测试API网关
核心技术点
搭建逆向工程, 生成所有微服务基本CRUD代码
SpringCloud, SpringCloud Alibaba框架( Nacos \ OpenFeign \ Gateway ) 快速上手操作
前端 ES6新特性, 本项目使用
前端 VUE开发常用组件, 本项目使用
前端 uniapp
商城业务-商品服务
课程内容
01-三级分类
三级分类-查询-递归树形结构数据获取
三级分类-配置网关路由与路径重写
三级分类-网关统一配置跨域
三级分类-查询-树形展示三级分类数据
三级分类-删除-页面效果
三级分类-删除-逻辑删除
三级分类-删除-删除效果细化
三级分类-新增-新增效果完成
三级分类-修改-基本修改效果完成
三级分类-修改-拖拽效果
三级分类-修改-拖拽数据收集
三级分类-修改-批量拖拽效果
三级分类-删除-批量删除
02-品牌管理
品牌管理-使用逆向工程的前后端代码
品牌管理-效果优化与快速显示开关
品牌管理-云存储开通与使用
品牌管理-OSS整合测试
品牌管理-OSS获取服务端签名
品牌管理-OSS前后联调测试上传
品牌管理-表单校验&自定义校验器
品牌管理-JSR303数据校验
品牌管理-统一异常处理
品牌管理-JSR303分组校验
品牌管理-JSR303自定义校验注解
品牌管理-品牌分类关联与级联更新
03-属性分类
概念-SPU&SKU&规格参数&销售属性
属性分组-前端组件抽取&父子组件交互
属性分组-获取分类属性分组
属性分组-分组新增&级联选择器
属性分组-分组修改&级联选择器回显
04-平台属性
平台属性-规格参数新增与VO
平台属性-规格参数列表
平台属性-规格修改
平台属性-销售属性维护
平台属性-查询分组关联属性&删除关联
平台属性-查询分组未关联的属性
平台属性-新增分组与属性关联
05-新增商品
新增商品-调试会员等级相关接口
新增商品-获取分类关联的品牌
新增商品-获取分类下所有分组以及属性
新增商品-商品新增vo抽取
新增商品-商品新增业务流程分析
新增商品-保存SPU基本信息
新增商品-保存SKU基本信息
新增商品-调用远程服务保存优惠等信息
06-商品管理
商品管理-SPU检索
商品管理-SKU检索
商品管理-SPU规格维护
核心技术点
使用逆向工程生成的前后端代码搭建项目, 进行项目前后端分离开发
基于github开源项目做二次开发
SpringCloud Alibaba Gateway 配置网关路由与路径重写
SpringCloud Alibaba Gateway 配置网关统一配置跨域
SpringCloud Alibaba OSS云存储
JSR303数据校验
微服务架构 统一异常处理
SpringCloud OpenFeign调用远程服务
商城业务-仓储服务
课程内容
01-仓库管理
仓库管理-整合ware服务&获取仓库列表
仓库管理-查询库存&创建采购需求
仓库管理-合并采购需求
仓库管理-领取采购单
仓库管理-完成采购
核心技术点
查询库存
向数据库中添加数据
数据库的关联查询
生成采购报表
领取采购单
商城业务-商品上架&商品详情
课程内容
01-商品上架
商品上架-sku在es中存储模型分析
商品上架-nested数据类型场景
商品上架-构造基本数据
商品上架-构造sku检索属性
商品上架-远程查询库存&泛型结果封装
商品上架-远程上架接口
商品上架-上架接口调试&feign源码
商品上架-抽取响应结果&上架测试完成
02-首页
首页-整合thymeleaf渲染首页
首页-整合dev-tools渲染一级分类数据
首页-渲染二级三级分类数据
03-nginx
nginx-搭建域名访问环境一(反向代理配置)
nginx-搭建域名访问环境二( 负载均衡到网关)
05-异步
异步-异步复习
异步-线程池详解
异步-CompletableFuture
异步-CompletableFuture-启动异步任务
异步-CompletableFuture完成回调与异常感知
异步-CompletableFuture-handle最终处理
异步-CompletableFuture线程串行化
异步-CompletableFuture-两任务组合都要完成
异步-CompletableFuture-两任务组合-一个完成
异步-CompletableFuture-多任务组合
06-商品详情
商品详情-环境搭建
商品详情-模型抽取
商品详情-规格参数
商品详情-销售属性组合
商品详情-详情页渲染
商品详情-销售属性渲染
商品详情-sku组合切换
商品详情-异步编排优化
核心技术点
ElasticSearch添加数据
ES的嵌套文档
SKU属性检索
OpenFeign远程服务调用
Thymeleaf动态页面渲染
Nginx反向代理
Nginx负载均衡
线程池的使用
CompletableFuture回调与异常处理
CompletableFuture多任务组合
CompletableFuture线程串行化
商品详情页面动态渲染
SKU联动处理
商城业务-ElasticSearch&检索服务
课程内容
01-ElasticSearch 入门
ElasticSearch-简介
ElasticSearch-Docker安装ES
ElasticSearch-Docker安装Kibana
ElasticSearch-入门- cat
ElasticSearch-入门-put&post新增数据
ElasticSearch-入门-get查询数据&乐观锁字段
ElasticSearch-入门-put&post修改数据
ElasticSearch-入门]-删除数据&bulk批量操作导入样本测试数据
02-ElasticSearch 进阶
ElasticSearch-进阶-两种查询方式
ElasticSearch-进阶-QueryDSL基本使用&match_ all
ElasticSearch-进阶-match全文检索
ElasticSearch-进阶-match phrase短语匹配
ElasticSearch-进阶-multi match多字段匹配
ElasticSearch进阶-booI复合查询
ElasticSearch-进阶-filter过滤
ElasticSearch-进阶-term查询
ElasticSearch-进阶-aggregations聚合分析
03-ElasticSearch 映射
ElasticSearch-映射-mapping创建
ElasticSearch-映射-添加新的字段映射
ElasticSearch-映射-修改映射&数据迁移
04-ElasticSearch 分词
ElasticSearch-分词-分词&安装ik分词
ElasticSearch-分词-自定义扩展词库
05-ElasticSearch 整合
ElasticSearch-整合-SpringBoot整合high-level-client
ElasticSearch-整合-测试保存
ElasticSearch-整合测试复杂检索
06-检索服务
检索服务-搭建页面环境
检索服务-调整页面跳转
检索服务-检索查询参数模型分析抽取
检索服务-检索返回结果模型分析抽取
检索服务-检索DSL测试查询部分
检索服务-检索DSL测试;聚合部分
检索服务-SearchRequest构建-检索
检索服务-SearchRequest构建排序、分页、高亮&测试
检索服务-SearchRequest构建-聚合
检索服务-SearchResponse分析&封装
检索服务-验证结果封装正确性
检索服务-页面基本数据渲染
检索服务-页面筛选条件渲染
检索服务-页面分页数据渲染
检索服务-页面排序功能
检索服务-页面排序字段回显
检索服务-页面价格区间搜索
检索服务-面包屑导航
检索服务-条件删除与URL编码问题
检索服务-条件筛选联动
核心技术点
ElasticSearch安装
ElasticSearch在Docker环境中安装
Kibana的安装及使用
索引库的创建
Mapping的设计及设置
索引库的删除
使用bulk方式向索引库批量导入数据
安装及测试中文分词器
根据Term查询
使用matchQuery查询
使用MultiMatchQuery查询
使用BooleanQuery查询
在BoolQuery中使用Filter
aggregations聚合分析
查询结果排序、分页、高亮
商城业务-认证服务
课程内容
07-认证服务
认证服务-环境搭建
认证服务-好玩的验证码倒计时
认证服务-整合短信验证码
认证服务-验证码防刷校验
认证服务-一步一坑的注册页环境
认证服务- 异常机制
认证服务-MD5&盐值&BCrypt
认证服务-注册完成
认证服务-账号密码登录完成
认证服务-OAuth2.0简介
认证服务-weibo登录测试
认证服务-社交登录回调
认证服务-社交登录完成
认证服务-社交登录测试成功
认证服务-分布式session不共享不同步问题
认证服务-分布式session解决方案原理
认证服务-SpringSession整合
认证服务-自定义SpringSession完成子域session共享
认证服务-SpringSession原理
认证服务-页面效果完成
认证服务-单点登录简介
认证服务-框架效果演示
认证服务-单点登录流程
核心技术点
OAuth2.0
第三方登录
单点登录
MD5&盐值&BCrypt
验证码防刷校验
验证码倒计时
短信验证码
SpringSession
商城业务-购物车
课程内容
08-购物车
购物车-环境搭建
购物车-数据模型分析
购物车-VO编写
购物车-ThreadLocal用户身份鉴别
购物车-页面环境搭建
购物车-添加购物车
购物车-添加购物车细节
购物车-RedirectAttribute
购物车-获取&合并购物车
购物车-选中购物项
购物车-改变购物项数量
购物车-删除购物项
核心技术点
ThreadLocal用户身份鉴别
数据模型分析
RedirectAttribute
风控
异步队列
策略模式
Session
Reactor
商城业务-消息队列&订单服务&分布式事务&支付
课程内容
09-消息队列
消息队列-MQ简介
消息队列-RabbitMQ简介
消息队列-RabbitMQI作流程
消息队列-RabbitMQ安装
消息队列-Exchange类型
消息队列-Direct-Exchange
消息队列-Fanout-Exchange
消息队列-Topic-Exchange
消息队列-SpringBoot整合RabbitMQ
消息队列-AmqpAdmin使用
消息队列-RabbitTemplate使用
消息队列-RabbitListener&RabbitHandler接收消息
消息队列-可靠投递发送端确认
消息队列-可靠投递消费端确认
10 -订单服务
订单服务-页面环境搭建
订单服务-整合SpringSession
订单服务-订单基本概念
订单服务-订单登录拦截
订单服务-订单确认页模型抽取
订单服务-订单确认页数据获取
订单服务-Feign远程调用丢失请求头问题
订单服务-Feign异步调用丢失请求头问题
订单服务-bug修改
订单服务-订单确认页渲染
订单服务-订单确认页库存查询
订单服务-订单确认页模拟运费效果
订单服务-订单确认页细节显示
订单服务-接口幂等性讨论
订单服务-订单确认页完成
订单服务-原子验令牌
订单服务-构造订单数据
订单服务-构造订单项数据
订单服务-订单验价
订单服务-保存订单数据
订单服务-锁定库存
订单服务-提交订单的问题
订单服务-RabbitMQ延时队列
订单服务-延时队列定时关单模拟
订单服务-创建业务交换机&队列
订单服务-监听库存解锁
订单服务-库存解锁逻辑
订单服务-库存自动解锁完成
订单服务-测试库存自动解锁
订单服务-定时关单完成
订单服务-消息失、积压、重等解决方案
订单服务-整合支付前需要注意的问题
订单服务-整合支付
订单服务-支付成功同步回调
订单服务-订单列表页渲染完成
订单服务-异步通知内网穿透环境搭建
订单服务-支付完成
订单服务-收单
11-分布式事务
分布式事务-本地事务在分布式下的问题
分布式事务-本地事务隔离级别&传播行为
分布式事务-分布式CAP&Raft原理
分布式事务-BASE
分布式事务-分布式事务常见解决方案
分布式事务-Seata&环境准备
分布式事务-Seata分布式事务体验
分布式事务-最终一致性库存解锁逻辑
12-支付
支付-支付宝沙箱&代码
支付-RSA、加密加签、密钥等
支付-内网穿透
核心技术点
RocketMQ
RabbitMQ
分布式事务
支付-支付宝沙箱
RSA、加密加签、密钥
SpringSession
内网穿透
商城业务-秒杀服务&Sentinel
课程内容
13-秒杀服务
秒杀服务-后台添加秒杀商品
秒杀服务-定时任务&Cron表达式
秒杀服务-SpringBoot整合定时任务与异步任务
秒杀服务-时间日期处理
秒杀服务-秒杀商品上架
秒杀服务-幂等性保证
秒杀服务-查询秒杀商品
秒杀服务-秒杀页面渲染
秒杀服务-秒杀系统设计
秒杀服务-登录检查
秒杀服务-秒杀流程
秒杀服务-秒杀效果完成
秒杀服务-秒杀页面完成
14-Sentinel
Sentinel-高并发方法论&简介
Sentinel-基本概念
Sentinel-整合SpringBoot
Sentinel-自定义流控响应
Sentine-全服务引入
Sentinel-流控模式&效果
Sentine-熔断降级
Sentinel- 自定义受保护资源
Sentinel-网关流控
Sentinel-定制网关流控返回
Sleuth-链路追踪-基本概念&整合
Sleuth-链路追踪-整合Zipkin效果
Sleuth-链路追踪-Zipkin界面分析
核心技术点
定时任务
异步任务
秒杀业务全流程
幂等性
库存减扣
分布式事务
Sentinel流量防卫兵
熔断降级
网关流控限速
Sleuth链路追踪
性能压测
课程内容
01-压力测试
压力测试-基本介绍
压力测试-Apache JMeter安装使用
压力测试- JMeter在windows下地址占用bug解决
02-性能监控
性能监控-堆内存与垃圾回收
性能监控-jvisualvm使用
03-优化
优化-中间件对性能的影响
优化-简单优化吞吐量测试
优化- nginx动静分离
优化-模拟线上应用内存崩溃宕机情况
优化-三级分类数据获取
核心技术点
压力测试
Apache JMeter使用详解
性能监控
JVisualVM
Linux命令
性能优化
吞吐量优化
动静分离
多级缓存
JVM参数调优
缓存
课程内容
01-缓存使用
缓存使用-本地缓存与分布式缓存
缓存使用-整合redis测试
缓存使用-改造三级分类业务
缓存使用-压力测试出的内存泄露及解决
缓存使用-缓存击穿、穿透、雪崩
缓存使用-加锁解决缓存击穿问题
缓存使用-本地锁在分布式下的问题
02-分布式锁
分布式锁-分布式锁原理与使用
分布式锁-Redisson简介&整合
分布式锁-Redisson-lock锁测试
分布式锁-Redisson-lock看门狗原理-redisson如何解决死锁
分布式锁- Redisson-读写锁测试
分布式锁-Redisson-读写锁补充
分布式锁-Redisson-闭锁测试
分布式锁-Redisson-信号量测试
分布式锁-缓存一 致性解决
03-SpringCache
SpringCache-简介
SpringCache-整合&体验@Cacheable
SpringCache-@Cacheable细节设置
SpringCache-自定义缓存配置
SpringCache-@CacheEvict
SpringCache-原理与不足
核心技术点
缓存击穿、穿透
服务雪崩
缓存一致性问题及解决方案
SpringCache
分布式读锁、写锁、死锁
Redisson
k8s
课程内容
01-kubesphere入门
k8s-简介
k8s-架构原理&核心概念
k8s-集群搭建-环境准备
k8s-集群搭建-创建三个虚拟机
k8s-集群搭建-NAT网络和前置环境
k8s-集群搭建安装Docker、kubelet、kubeadm、kubectl
k8s-入门-基本操作体验
k8s-入门-yaml&基本使用
k8s-入门-Pod、Service等概念
k8s-入门-Ingress
02-kubesphere-进阶
kubesphere-安装前置环境
kubesphere 安装最小化安装完成
kubesphere-安装 定制化安装&界面介绍
kubesphere-进阶-建立多租户系统
kubesphere-进阶-创建WordPress应用-密钥
kubesphere-进阶-创建WordPress应用创建容器
kubesphere-进阶-创建WordPress应用-外网访问
kubesphere-进阶-什么是DevOps
kubesphere 进阶-流水线-创建凭证
kubesphere进阶流水线-CICD完整体验
核心技术点
kubernetes集群构建
高可用集群构建
kubeadm方式构建集群
二级制方式构建集群
kubernetes架构原理
k8s核心组件原理
kubernetes认证与授权
POD核心网络原理
Service服务发现
Service负载均衡
Ingress七层负载
Deployment服务部署
StatefulSet服务部署
kubesphere多租户
kubesphere可视化部署
DevOps流水线生产
集群
课程内容
集群常见的基本形式
01-mysql集群
MySQL-常见集群形式
MySQL-主 从同步
ShardingSphere-简介
ShardingSphere-分分表&读写分离配置
02-Redis集群
Redis-Cluster基本原理
Redis-Cluster集群搭建
03-ElasticSearch集群
ElasticSearch-集群原理
ElasticSearch-集群搭建
04-RabbitMQ集群
RabbitMQ镜像集群搭建
核心技术点
MySQL-主 从同步
mysql容器化部署迁移
ShardingSphere
分库分表&读写分离
Redis-Cluster集群
Redis-Cluster容器化迁移
ElasticSearch-集群
ES集群容器化部署迁移
RabbitMQ镜像集群
部署
课程内容
01-部署应用
部署-如何在k8s.上部署有状态应用
部署-k8s部署MySQL
部署-k8s部署Redis
部署-k8s部署ElasticSearch&Kibana
部署-k8s部署RabbitMQ
部署-k8s部署Nacos
部署-k8s部署Zipkin
部署-k8s部署Sentinel
部署-k8s部署应用的流程
部署-生产环境配置抽取
部署- 创建微服务Dockerfile
部署-创建微服务k8s部署描述文件
部署-理解targetPort、Port、NodePort
02-流水线部署
流水线第一 步-gitee拉取代码
流水线-第一 步-参数化构建&环境变量
流水线第二步Sonar代码质量分析
流水线第二步-Sonar代码质量分析调试完成
流水线第三步-构建&推送镜像
流水线-第四步-流水线编写完成
部署-移植数据库
流水线流水线细节优化&解决OOM
流水线流水线部署所有微服务
部署- Docker镜像操作
部署整合阿里云镜像仓库
部署-Jenkins修改阿里云镜像仓库
流水线部署gateway
流水线部署auth-server
流水线部署cart
流水线部署coupon
流水线部署完成&bug修改
流水线修改为公有仓库
03-最终部署
最终部署-第一次部署前置nginx
最终部署-创建网关与应用路由
最终部署-商城系统上线
最终部署-部署vue项目
最终部署-测试滚动更新部署admin-vue-app
04-线上预警与监控
核心技术点
Sonar代码质量检查
k8s部署MySQL
k8s部署Redis
k8s部署ElasticSearch
k8s部署kibana
k8s部署logstash
k8s部署RabbitMQ
k8s部署Nacos
k8s部署gateway网关
k8s部署order-server
k8s部署auth-server
k8s部署Zipkin
k8s部署sleuth
k8s部署Sentinel
pipeline部署落地
流水线部署gateway
流水线部署auth-server
流水线部署cart
流水线部署coupon
项目最终上线运营及滚动更新
阶段学习达成作品
【微服务开发、集群部署项目】
【微服务开发、集群部署项目】
手把手落地一套更有价值、更前沿、更有深度的电商项目
12 个大厂通用解决方案,收获从单项工作到全局实践的进阶经验
从 0 到 100,系统掌握前后端综合技术体系
第四阶段:java + vue + uniapp 开发的一套新零售商城系统
B2B2C平台端(管理后台 PC端)
功能模块
基础商城
控制台
基础统计
商品
商品分类
商品列表
商品采集
品牌列表
保障服务
商户
入驻协议
商户入驻申请
店铺类型
商户分类
商户列表
商户菜单管理
订单管理
订单状态
订单列表
退款单
商城订单
拆单逻辑
物流配送
快递发货
物流跟踪
用户等级会员
等级管理
等级配置
等级说明
种草社区
社区分类
社区话题
社区内容
社区评论
社区配置
财务
资金流水
资金流水
流水汇总
结算管理
用户结算
商户结算
商户结算设置
账单管理
充值记录
用户管理
用户列表
用户列表
赠送优惠券
用户类型
用户标签
营销活动
平台优惠券
视频号
系统设置
全新权限控制
管理员列表
权限规则
页面管理
一键换色
页面设计
底部菜单
首页DIY
微页面
后台任务
课程内容
核心知识点
演示地址
未发布课程,敬请关注!
B2B2C平台端(子商户后台 PC端)
功能模块
课程内容
核心知识点
演示地址
未发布课程,敬请关注!
B2B2C商城端(H5端、小程序端)
功能模块
课程内容
核心知识点
演示地址
未发布课程,敬请关注!
B2B2C商城端(PC端)
功能模块
课程内容
核心知识点
演示地址
未发布课程,敬请关注!
第四阶段:能力进阶 P6 技术栈+深度+广度+原理
Java 进阶必备技术栈
01-项目性能优化
性能问题分析理论:3S 定理
性能指标:RT、TPS、并发数...
压测监控平台:Docker、InfluxDB、Grafana、Prometheus 和 node_exporter 环境搭建
梯度压测:分析接口性能瓶颈
分布式压测:构建百万次请求的压力
服务容器优化:Tomcat、I/O 模型、Undertow 调优
数据库调优:影响数据库性能因素
OpenResty 调优
多级缓存调优
JVM 调优
02 JVM 虚拟机
JVM 基本常识与整体架构
类加载子系统:加载时机、加载过程
类加载器详解
JVM 加载机制剖析:一个类的一生
双亲委派与打破双亲委派
自定义类加载器
JVM 运行时数据区:堆、虚拟机栈、本地方法栈、方法区、字符串常量池、程序计数器
JVM 内存模型变迁
栈帧剖析与栈异常案例
字符串常量池如何存储和查找数据
方法区存储什么,永久代与元空间是什么关系
一个对象的一辈子:对象创建流程与内存分配
对象怎样才会进入老年代?内存担保机制
解剖对象这只小麻雀:对象内存布局,对象头 Header 的 MarkWord 和 KlassPoint
如何定位一个对象
GC 基本原理:什么是垃圾、如何找到垃圾、如何清除垃圾、用什么清除垃圾
垃圾收集器剖析:Parallel、Serial、CMS、G1、ZGC
Minor GC 、Major GC 和 Full GC
JVM 核心参数:标准参数、非标准参数、不稳定参数
JVM 常用指令:jps、jstat、jinfo、jhat、jmap
JVM 调优工具:VisualVM、GC Easy、PerfMa、MAT
GC 日志分析
GC 日志分析工具
内存溢出与泄露案例
检测死锁案例
JVM 调优实战案例:
堆内存和元空间优化
堆栈优化
吞吐量优先策略
响应时间优先策略
G1 全功能垃圾收集策略
03 多线程与并发编程
线程和进程、并发与并行、上下文切换
多线程并发中的线程安全问题
多线程并发的三个特性:原子性、可见性、顺序性分析
指令重排序、happens-before 规则
JMM 模型深度剖析:JSR-133: Java Memory Model and Thread Specification
Synchronized 原理分析
锁优化&锁升级
Volatile 原理与源码分析
多线程在 JVM 中的实现原理剖析
CAS 算法和 ABA 问题
显示锁和 AQS 底层原理分析
AQS 共享锁实现原理
ReentrantLock 重入锁源码分析
ReentrantReadWriteLock 读写锁
并发容器深度剖析
CAS 原子操作及相关类
基本数据类型:AtomicInteger、AtomicLong、AtomicBoolean
数组:AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray
引用类型:AtomicReference
并发编程工具掌握:CountDownLatch、Semaphore、CyclicBarrier
Future 和 FutureTask
线程池工作原理
ThreadLocal 底层原理
04 网络编程
网络通信协议:TCP/IP 协议集
TCP/IP 五层模型和 OSI 模型详解
TCP 三次握手和四次挥手机制
TCP 与 UDP 协议
从输入 URL 地址到显示网页经历了哪些过程
HTTP/1.0 与 HTTP/1.1 的区别
URI 与 URL 的区别
HTTP 与 HTTPS 的区别
同步和异步、阻塞和非阻塞
五种 I/O 模型:阻塞 I/O 模型、非阻塞 I/O 模型、多路复用 I/O 模型、信号驱动 I/O 模型、异步 I/O 模型
JAVA 网络编程模型:BIO、NIO、AIO
NIO 多路复用深入剖析:Selector、Channel 与 SelectionKey
NIO 案例 01:客户端与服务器之间通信
NIO 案例 02:网络聊天室 V1.0
Netty 总体架构设计
Netty 线程模型:单线程、多线程与 Netty 线程模型
Netty 核心组件:Bootstrap、EventLoopGroup、Channel 与 ChannelHandlerContext 等
Netty 案例 03:客户端与服务器之间通信
Netty 案例 04:网络聊天室 V2.0
Netty 编解码器
RPC 通信原理
RPC 的设计架构与思想
RPC 架构完整调用流程
案例 05:手写一个 RPC 框架 HeroRPC
案例 06:手写一个 Tomcat
案例 07:600W+ 连接网络应用实战
海量数据存储专题
01 MySQL 进阶
MySQL 应用架构:内存结构、磁盘结构
MySQL 体系架构
MySQL 运行机制
一条 SQL 语句的完整执行流程
Buffer Pool
日志缓冲
内存数据落盘
CheckPoint
Double Write
存储引擎原理:InnoDB、MyISAM
索引的数据结构:B+ 树、为什么不用红黑树、二叉树、B 树?
索引原理
索引分析与优化建议
索引下推 ICP
聚簇索引,辅助索引
查询分析与优化
事务 ACID 特性
事务控制的演进
事务隔离级别
LBCC 与 MVCC
ReadView:快照读、当前读
版本链
日志:Undo log、redo log、binlog
锁:全局锁、表锁、行锁【记录锁、间隙锁、临键锁、插入意向锁】、读锁、写锁
复杂 SQL 加锁分析
死锁原理
02 海量数据存储与优化
数据库压力测试
数据库的连接池优化
SQL 语句优化:执行计划
索引优化
Limit 优化
子查询优化
SQL 语句性能分析
慢查询日志
线程使用情况分析
集群架构设计
主从模式高可用
双主模式
分库分表
分库分表实战
ShardingSphere
Sharding-JDBC
数据分片剖析实战
读写分离剖析实战
分布式事务剖析实战
Sharding-Proxy 实战
Sharding Sphere 源码分析
MyCat 核心概念
MyCat 架构剖析
MyCat 配置详解
MyCat 管理命令详解
MyCat 分片规则详解
MyCat 分库分表
MyCat 读写分离
MyCat 强制路由
MyCat 注解技术
MyCat 核心技术分析
MyCat 分布式事务的实现
MyCat SQL 路由的实现
MyCat 跨库 JSON 的实现
MyCat 数据汇聚和排序的实现
03 MongoDB
MongoDB 体系结构
MongoDB 存储原理
MongoDB 存储引擎
MongoDB 索引和 explain 分析
MongoDB 索引底层原理分析
MongoDB 主备切换
MongoDB 企业实战
MongoDB 集群高可用
复制集 replica sets
分片集群 Shard Cluster
MongoDB 安全认证
监控服务(Mong oOps Manager)
MongoDB 备份
04 MinIO
一、项目信息说明
二、使用说明
三、minio Server部署
四、MinIO Client使用
五、MINIO SDK(Java) Java Client API参考文档
六、文件上传到minio,获取文件列表,下载文件
常用开发框架解读专题
01 Spring 源码
Spring 源码阅读前沿
Spring 创建对象代码演变及 IoC 容器初始化
手写一个 Spring 框架案例
Spring 面向对象 OOAD 和七大设计原则
Spring-IoC 模块的面向对象设计
Spring 面向对象方式手写 IoC 流程
Spring-IoC 源码阅读
Spring-AOP 核心概念以及动态代理原理
Spring-AOP 三大核心流程图解
Spring-AOP 源码阅读
Spring 中的设计模式:责任链模式与反射调用
02 Spring MVC 源码
手写一个 Spring MVC Web 应用框架
Spring MVC 应用框架架构解析
手写一个 Spring 框架案例
图解 Spring MVC 执行流程
Spring MVC 源码阅读
解析 RequestMappingAdapter 流程
03 Spring Boot 应用
Spring Boot 与 Spring 的区别与联系
Spring Boot 启动流程源码解析
yml 配置文件加载流程解析
图解 Spring Boot 自动配置流程
Spring Boot&Redis&MyBatis 整合源码解析
使用自定义 starter 完成案例
04 MyBatis 源码
采用面向的对象方式手写一个 MyBatis 框架
解析 MyBatis 版本配置文件及对应存储类分析
MyBatis-SqlSession 执行流程解析
MyBatis-Mapper 代理底层原理解析
05 Tomcat 源码
Tomcat 底层原理解析
搭建 Tomcat 源码环境
手写 Tomcat 源码
阅读解析 Tomcat 启动流程
Tomcat 加载、创建 Servlet 流程源码解读
解析 Tomcat 请求处理流程
06 Nginx 应用
Nginx 使用原理解析
Web Server 技术选型
详解 Nginx 配置文件
Nginx 请求定位之 server 定位
Nginx 请求定位之 location 定位
Nginx 应用之 rewrite 重定向
Nginx 应用实战之静态资源服务器
Nginx 应用实战之反向代理应用
Nginx 应用实战之负载均衡
Nginx 应用实战之动静分离
Nginx 应用实战之虚拟主机应用
Nginx 应用实战之缓存配置
Nginx 应用实战之日志管理
分布式缓存
01 Redis
Redis 底层数据结构的空间使用情况、时间复杂度
数据结构原理与场景实战
Redis 网络模型:阻塞&非阻塞
用户态&内核态
I/O 多路复用
Redis 单线程
Redis RESP 通信协议
Redis 的内存淘汰、内存布局、key 过期机制
Redis 最佳实践:key 设计原则,bigkey、hotkey 的发现方式和避免手段
Redis 批处理的场景和不足,分析 Redis 数据安全问题。
Redis 服务端优化之持久化原理和常见配置
Redis 服务端优化之命令安全、内存安全配置
Redis 运维之主从同步、哨兵、集群分片实现原理
Redis 场景实战
搜索专题
01 Elasticsearch
Elasticsearch 倒排索引
FOR 算法、RoaringBitMap 算法原理
前缀树、FST 原理解析
Elasticsearch 之集群分片
Elasticsearch 全文搜索 match、精准查询 term
Elasticsearch 过滤器
Elasticsearch 组合查询、模糊查询
scriptings 脚本
Elasticsearch 分词过滤
Elasticsearch 文档
外部词库更新
分词器 tokenizer
Elasticsearch 聚合查询
Elasticsearch 场景实战
消息队列专题
01 消息中间件介绍
消息中间件使用场景
消息中间件需要解决的问题
消息中间件选型
RocketMQ 环境搭建、Debug 调试
02 RocketMQ 实战
消息发送 API 详解与版本变迁说明
消息发送核心参数与工作原理
消息发送常见错误与解决方案
事务消息以及定时消息发送实战
消息消费 API 详解与版本变迁说明
DefaultMQPushConsumer 核心参数与工作原理
DefaultMQPushConsumer 使用示例与注意事项
结合应用场景学习 DefaultMQPushConsumer
消息过滤实战
消息消费积压问题排查实战
订阅关系不一致实战
批量消费实战
03 RocketMQ 原理应用
Broker 启动流程分析
NameServer 路由注册机制
生产者的发送消息流程
消费者的接收消息流程
消息的可靠性应该如何保证
不同消息的有序性如何解决
Broker 接收消息的处理流程
04 RocketMQ 高级特性
消息在 Broker 端的文件布局
消息存储的高效与刷盘策略
Broker 快速读取消息机制
文件恢复与 CheckPoint 机制
消息大量堆积了该怎么办
部署架构与高可用机制
NameServer 的设计理念
05 Kafka 实战
Kafka 基础架构运行流程
生产者选择分区发送数据流程
生产者发送数据的可靠性保证
服务端的消息处理架构模型
服务端消息存储的文件布局
如何保证服务端数据的一致性
消费方如何消费数据/消费分区
Kafka 该如何实现顺序消费
消费者组重平衡流程解析
Kafka 有哪些高性能的设计
Kafka 与 RocketMQ 的主流功能对比
微服务前沿技术栈专题
01 体系介绍
Nacos Registry
Nacos Config
OpenFeign
Gateway
zookeeper
Dubbo
Sentinel
Seata
02 Spring Cloud 最佳实践
Provider + Consumer + Eureka 服务搭建
Provider + Consumer + Nacos 服务搭建
Consumer + Provider + Nginx 集群搭建
03 Nacos 注册与发现
Nacos 服务注册案例搭建
Nacos 服务订阅案例搭建
Nacos Client 发起注册流程
Nacos Server 处理注册流程
Nacos Client 发起订阅流程
Nacos 心跳与剔除机制
04 Nacos 配置中心
Nacos Config 动态更新端口案例搭建
Nacos Config 动态更新配置案例搭建
Nacos 配置中心源码分析
Nacos 动态更新机制
Nacos UDP 通知更新机制
Nacos 集群同步源码分析之 CP + AP 模式
Nacos 集群同步 Distro 一致性协议
Nacos 集群同步 Raft 一致性协议
05 OpenFeign 负载均衡
Ribbon 工程案例搭建
OpenFeign 负载均衡与降级案例搭建
OpenFeign 源码分析之 @FeignClient 注解扫描机制
OpenFeign 源码分析之 Feign 的上下文隔离机制
06 Gateway 网关路由
Gateway 路由案例搭建
自定义拦截过滤
转发重定向机制
07 Sentinel 限流降级
Sentinel 手动设置限流/降级案例搭建
Sentinel 接入 Nacos 案例搭建
探索 Sentinel 规则持久化机制
联动 Sentinel 与 Nacos 的持久化实现
核心 SphU.entry 源码分析
ProcessorSlotChain 过滤器链流程
StatisticSlot 核心处理逻辑分水岭
08 Seata 分布式事务解决方案
分布式事务简介
分布式事务解决方案
Seata简介
Seata-Server的配置与启动
测试环境搭建
配置Seata-Client
09 Zookeeper
1. Zookeeper简介
2. 基本操作
3. ZK监听机制详解
4. 集群搭建
5. 案例:手写分布式锁
10 Dubbo 服务调用框架
Dubbo 工程案例环境搭建
Provider & Consumer 案例搭建
依赖检查 & 负载均衡案例搭建
广播调用 & 缓存操作案例搭建
点对点调用案例搭建
泛化调用案例搭建
Dubbo 源码分析
JDK SPI 与 Dubbo SPI 机制
Dubbo 服务发布流程
Dubbo 服务订阅流程
Dubbo Wrapper 机制
Dubbo 协议编解码
持续集成与容器化专题
01 CI/CD、DevOps
软件生命周期概念
CI/CD 概念
DevOps 概念
搭建实验环境
初识 Jenkins
Jekins 集成 Maven 构建 Java 应用程序
Jekins 集成 Git 搭建 GitLab 服务器
Jenkins 集成 GitLab 管理 Java 应用程序
Jenkins Security 用户角色管理
Jenkins 自动化任务
Jenkins 流水线 Pipeline
Jenkins 实战之集成 Ansible
Jenkins 实战之搭建 CI/CD 流水线
02 Docker
Jenkins 基础&安装流程
虚拟化技术 vs 容器化原理
Docker client 命令详解
Docker 交互指令
Docker 镜像概念
Docker 实战部署 Web 服务
Docker-compose 部署多容器应用
Docker 进阶:container 概念详解
Docker 进阶:network 概念详解
Docker 进阶:image 概念详解
Docker 进阶:volume 概念详解
Docker Swarm:微服务项目容器化部署
Docker compose vs Docker Swarm
Docker 私服搭建
03 Kubernetes
K8s 集群搭建
Harbor 仓库搭建
K8s 基本指令入门
K8s 核心组件原理
K8s 网络原理
K8s 负载均衡
POD 调度详解、重启策略
容器探针
POD 核心原理剖析
Ingress 七层负载君合实战方案
ReplicaSet 剖析
configmap 资源对象剖析
K8s 存储解析
PVC 和 PV 深度剖析
headless Service 原理解析
statefulSet 原理解析
有状态服务部署
项目案例
高并发场景下 JVM 调优
确定不同负载下的调优目标:高负载、中负载、低负载
分析 JVM 存在的潜在问题
确定 JVM 调优的优化方案:响应优先还是吞吐量优先
JVM 调优方法论
使用 JMeter 完成分布式压力测试
使用 JMeter 构建分布式压力测试环境
搭建 1 台 Master 节点,3 台压力机节点
模拟 10w+ 的请求量
压力测试结果分析
基于主从复制、读写分离的高可用数据库
掌理解从复制原理
掌握主从同步延迟的解决办法
基于主从复制配置高可用 MySQL 集群
搭建读写分离集群
Redis 场景实战
基于 zset 实现博客点赞和排行榜
基于 bitmap 实现用户签到
基于 geo 实现附件的商户
基于 hyperloglog 实现 uv 统计
Elasticsearch 场景实战
基于 suggester 实现的商品搜索推荐
基于 scriptings 脚本实现商品 CRUD
RocketMQ 使用场景
消息过滤实战
消息消费积压问题排查实战
订阅关系不一致实战
批量消费实战
Spring Cloud 服务注册与发现的伪集群搭建
Provider + Consumer + Eureka 服务搭建
Provider + Consumer + Nacos 服务搭建
Provider + Consumer + Nginx 集群搭建
第五阶段:P7 架构
业务架构
未发布课程,敬请关注!
技术架构
未发布课程,敬请关注!
收藏
0 条评论
下一页