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