展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

Java学习路线

javase

1 2 3 4 5
基础语法 条件语句 面向对象 Exception Collection
集合框架拓展 抽象类和接口 内部类 集合框架 异常处理和泛型
File文件和目录 字节流 字符流 日期时间 常用类
Enum 序列化与反序列化 加解密:编码算法、哈希算法 加解密:BouncyCastle、Hmac算法 加解密:对称加密算法、口令加密算法
加解密:密钥交换算法、非对称加密算法 加解密:签名算法、数字证书 网络编程 注解和反射

java新特性

  • 01
1 2 3 4 5
java环境 default关键字 Base64 api 日期时间处理 日期时间格式化
Optional类 Lambda表达式 ⾃定义lambda接⼝ 函数式接口 ⽅法引⽤与构造函数引⽤
Stream 集合框架 collector收集器和joining函数 分组 summarizing集合统计
collection和lambda数据处理实战 Jdk8新内存空间Matespace Jdk7新特性try-with-resources Jdk9新增测试⼯具jshell Jdk9新增私有⽅法
Jdk9新特性增强try-with-resource Jdk9快速创建只读集合 Jdk9新增Stream API Jdk10局部变量类型推断var Jdk11新增HttpClient客户端,发送get请求
Jdk11新增Http客户端提交post请求和异步请求 Jdk11使用HttpClient提交Http2请求 Jdk11中javac和java命令优化 Jdk知识科普 Jdk13新特性多⾏⽂本块
Jdk13新特性增强switch表达式
  • 02
1 2 3 4 5
Http Client入门 测试 httpclient发送Authorization Basic请求

juc

1 2 3 4 5
并发 线程 线程安全性 锁(一):简介 锁(二):ReentrantLock源码之非公平锁的实现
锁(三):ReentrantLock源码之公平锁的实现 锁(四):多线程debug 锁(五):读写锁 锁(六):AQS使用单一int值表示读写两种状态 锁(七):ReentrantReadWriteLock之读锁源码实现
锁(八):ReentrantReadWriteLock之写锁源码实现 锁(九):锁降级 锁(十):StampedLock原理及使用 线程间通讯 使用管道流通讯
Thread.join通信 ThreadLocal Condition 原子类 容器
LinkedBlockingQueue使用及源码分析 CountDownLatch使用及源码分析 CyclicBarrier使用及源码分析 Semaphore使用及源码分析 Exchanger
线程池 线程池的核心组件及运行机制 线程池拒绝策略 Executor框架 jvm与并发
线程实战

jvm

1 2 3 4 5
JVM运行时数据区与程序计算器 java虚拟机栈 本地方法栈、java堆、方法区、运行时常量池 java对象创建步骤 java对象内存布局和访问对象方式
引用计数法 可达性分析法 标记清除算法、复制算法 标记整理算法、分代收集算法 serial收集器、ParNew收集器
Parallel Scavenge收集器、Serial old收集器、Parallel old收集器 CMS垃圾收集器 G1垃圾收集器 堆内存分配 大对象的分配
逃逸分析和栈上分配 jps工具 jstat、jinfo jmap jhat
jstack jconsole 可视化虚拟机⼯具VisualVM 传统项目和互联网项目常见jvm问题

java web

1 2 3 4 5
Http协议 构建web项目 servlet入门 servlet应用上下文与jsp HttpServletRequest与HttpServletResponse详解
servlet请求转发、重定向、EL表达式 cookie和session sevlet之filter过滤器 Listener监听器 文件上传、下载
JDBC连接MySQL jdbc工具类与池化思想 数据库连接池和Apache DBUtils操作数据库

netty

1 2 3 4 5
netty入门 Java BIO 基本使用 Java NIO 基本使用 缓冲区(Buffer) 通道(Channel)
Buffer 和 Channel使用注意 Selector(选择器) NIO案例 SelectionKey、ServerSocketChannel、SocketChannel常用api 群聊案例
零拷贝 netty简介 Reactor 模式 netty模型 netty案例
任务使用场景 异步模型 HTTP服务案例 核心模块 Pipeline 和 ChannelPipeline
EventLoop组件 Unpooled 类 群聊系统 Netty心跳检测机制 通过WebSocket编程实现服务器和客户端长连接
编解码 Protobuf使用案例 Protobuf传输多种类型 入站和出站机制 Handler链调用机制实例
其他编解码器 Log4j 整合到Netty TCP 粘包和拆包 TCP 粘包和拆包解决方案

git

1 2 3 4 5
推送项目到gitee idea解决冲突 vscode解决冲突 分支管理 远程git仓库操作
远程仓库迁移 github使用Pull requests github release使用 1台电脑关联多个远程git仓库 git常用命令
使用密码或token拉取仓库 coding使用 github搜索技巧 gitlab自动同步代码到github idea使用token
IDE中版本回退 IDE使用ssh密钥进行git版本管理 Tortoisegit安装使用

maven

1 2 3 4 5
maven安装、配置 maven简介 依赖管理 生命周期与插件 分模块开发、聚合
继承 属性 版本管理、资源配置 多环境开发配置、跳过测试 私服
idea操作私服 linux安装nexus,并搭建私服

gradle

1 2 3 4 5
gradle构建spring boot项目 gradle安装、配置,使用命令构建spring boot项目 gradle入门 Wrapper 包装器 Groovy入门
gradle构建普通java项目 gradle创建web工程 部署 gradle项目测试 生命周期和settings.gradle说明
任务入门 任务依赖方式 任务执行 任务定义方式、任务属性、任务类型 任务执行顺序、开启关闭、超时、查找、任务规则、断言、默认任务
文件操作 依赖方式、依赖下载、依赖类型 api 与 implementation 区别 依赖冲突解决方案 脚本插件、内部插件、第三方插件
用户自定义插件 自定义插件,提供给其他项目使用 插件关注点 build.gradle 项目发布
钩子函数和对象 gradle创建spring boot项目 构建微服务项目 gradle上传jar到nexus私服

spring

1 2 3 4 5
入门案例 IOC容器底层原理 基于xml配置管理bean,创建对象和属性注入 基于xml配置管理bean,注入特殊字符、外部bean、内部bean、级联bean 基于xml配置管理bean,注入集合
基于xml配置管理bean,工厂bean、bean作用域 基于xml配置管理bean,bean生命周期 基于xml配置管理bean,自动装配、外部属性文件 基于注解管理bean,创建对象 基于注解管理bean,注入属性
AOP简介 AOP动态代理 Aspect注解使用、配置文件使用 JdbcTemplate使用,添加数据 JdbcTemplate使用,crud操作
搭建事务操作环境 事务管理,注解方式配置 事务管理,传播行为、隔离级别 事务管理,xml方式配置 事务管理,纯注解方式配置
整合日志 @Nullable 整合JUnit Webflux简介 Reactor
WebFlux实现,注解编程模型 WebFlux实现,函数式编程模型
查看详情
  • 知识碎片
1 2 3 4 5
静态方法中调用bean的方法 读取yaml中的配置赋值给静态变量 在@Component标注的类中注入@Component标注的类

spring mvc

1 2 3 4 5
入门案例 @RequestMapping注解 获取请求参数 域对象共享数据 视图
RESTful HttpMessageConverter 文件上传下载 拦截器 异常处理
注解配置SpringMVC DispatcherServlet初始化过程 DispatcherServlet服务过程 DispatcherServlet调用组件处理请求

mybatis

1 2 3 4 5
入门案例 @Param源码 查询操作 动态sql 缓存
逆向工程与分页插件

ssm

1 2 3 4 5
搭建环境 业务实现 与前端交互 异常处理 与前端联调
拦截器 拦截器参数和拦截器链

mybatis plus

  • 01
1 2 3 4 5
单表查询、分页 单表查询,自定义sql 连表查询,自定义sql 新增 删除
更新 排序、分组、求和、最大值 子查询、嵌套查询 运算符 pagehelper分页插件
序列化 模糊查询 环境搭建 自动填充时间 连接查询
  • 02
1 2 3 4 5
枚举 resultMap crud 条件构造器 分页
pageHelper 连表查询 自定义id生成器 逻辑删除 字段类型处理器
自定填充功能 sql注入器 数据安全保护 乐观锁 多租户插件
防全表更新与删除插件 动态表名插件 自定义全局操作 性能分析插件 sql执行分析
ActiveRecord Sequence
  • 03
1 2 3 4 5
环境搭建 基础使用 常用注解 条件构造器 插件
通用枚举 代码生成器 多数据源 MyBatisX插件

spring boot

1 2 3 4 5
构建spring boot项目 spring boot入门 依赖管理和扫描路径 @Configuration @Import、@Conditional、@ImportResource
配置绑定 自动配置原理 自动配置实践 配置文件 静态资源规则
静态资源原理 Rest映射原理 请求映射原理 基本注解 矩阵变量
参数解析原理 复杂参数 参数绑定和自定义参数绑定 响应json 内容协商
自定义内容协商 自定义内容协商策略 视图解析 拦截器 文件上传
错误处理 原生注解方式注入web原生组件 spring方式注入web原生组件 嵌入式servlet容器 单元测试
断言 前置条件、嵌套测试、参数化测试 指标监控 定制监控端点 收集数据服务器
profile功能 外部化配置 自定义starter 自定义事件监听组件

spring security

  • 03
1 2 3 4 5
入门 动态数据认证与认证处理 用户名 + 密码 + 图形验证认证 记住我 自定义认证机制,使用手机短信验证
获取用户信息 配置session会话超时时长,自定义session失效处理 设置1个账号不能同时在2台电脑登录 redis实现session高可用集群、指定cookie中保存的sessionid名称 解决session超时不允许再次登录
自定义退出登录的处理,自定义退出登录逻辑 授权管理和自定义403页面 授权配置分层管理 基于注解控制方法级权限和视图权限控制 整合mybatis plus,实现数据库动态认证
数据库动态认证,简化封装用户的代码 权限资源管理 静态资源放行 角色管理 用户管理
权限控制菜单 OAuth2协议简介 OAuth2认证服务器 OAuth2认证服务器策略配置 认证服务器+rbac动态认证用户
OAuth2资源服务器 JWT 访问令牌使用对称与非对称加密 单点登录 分布式认证授权(一) 分布式认证授权(二)
分布式认证授权(三) 分布式认证授权(四)

spring cloud

1 2 3 4 5
分布式微服务项目搭建 Spring Cloud入门 Eureka zookeeper Consul
Ribbon OpenFeign Hystrix GateWay Config
Bus Stream Sleuth Nacos Sentinel限流、降级配置详解
Sentinel seata简介 docker安装seata,集成到cloud项目

数据结构与算法

1 2 3 4 5
稀疏数组 对列 数组模拟环形队列 单链表(一) 单链表(二)
单链表(三) 双向链表 约瑟夫问题 约瑟夫问题(一) 约瑟夫问题(二)
使用栈实现综合计算器 逆波兰计算器 中缀表达式转后缀表达式 递归、迷宫问题
八皇后问题 时间频度、时间复杂度 冒泡排序 选择排序 插入排序
希尔排序 快速排序 归并排序 基数排序 时间复杂度、线性查找
二分查找算法 插值查找算法 斐波那契查找算法 哈希表 二叉树
二叉树遍历、查找、删除 顺序存储二叉树 线索化二叉数 堆排序 赫夫曼树
赫夫曼编码 数据压缩、解压 二叉排序树 二叉排序树的删除 平衡二叉树
多路查找树 非递归的方式实现二分查找算法 分治算法 动态规划算法
暴力匹配算法、KMP算法 贪心算法 普里姆算法 克鲁斯卡尔算法 迪杰斯特拉算法
弗洛伊德算法 马踏棋盘算法

设计模式

1 2 3 4 5
设计模式简介 单一职责原则 接口隔离原则 依赖倒转原则 里氏替换原则
开闭原则 迪米特法则 合成复用原则 UML简介 类图
简介 单例模式:饿汉式 单例模式:懒汉式 单例模式:其他 单例模式在JDK 应用
传统方式解决披萨制作问题 简单工厂模式 工厂方法模式 抽象工厂模式 工厂模式在JDK-Calendar 应用
传统方式解决克隆羊问题 原型模式 原型模式解决克隆羊问题 原型模式在Spring框架应用 浅拷贝和深拷贝
传统方式解决盖房问题 建造者模式 建造者模式解决盖房问题 建造者模式在StringBuilder应用 适配器模式
类适配器 对象适配器 接口适配器 适配器模式在SpringMVC应用 桥接模式
桥接模式在JDBC应用 星巴克咖啡订单问题 装饰者模式 装饰者模式在JDK应用 学校院系展示问题
组合模式解决学校院系展示问题 组合模式在JDK应用 影院管理问题 外观模式解决影院管理问题 外观模式在MyBatis框架应用
展示网站项目问题 享元模式解决网站展现问题 享元模式在JDK应用 代理模式:静态代理 代理模式:动态代理
代理模式:Cglib代理 豆浆制作问题 模板方法模式解决豆浆制作问题 模板方法模式在Spring应用 智能生活项目问题
命令模式解决智能生活项目问题 命令模式在Spring应用 测评系统问题 访问者模式解决测评系统问题 双分派
迭代器模式 迭代器模式解决学校院系结构展示问题 迭代器模式在JDK应用 传统方式解决天气预报问题 观察者模式解决天气预报问题
观察者模式在Jdk应用 中介者模式 中介者模式解决智能家电问题 备忘录模式 备忘录模式解决解决游戏角色状态恢复问题
解释器模式 解释器模式实现四则运算 解释器模式在Spring应用 状态模式 状态模式解决APP抽奖问题
状态模式解决借贷平台问题 传统方式解决鸭子问题 策略模式解决鸭子问题 策略模式在JDK应用 OA系统采购审批问题
职责链模式解决OA系统采购审批问题 职责链模式在SpringMVC应用

领域驱动设计

1 2 3 4 5
简介 四层架构 使用vo2dto插件 概念 值对象、领域事件、反腐层
五层架构 六层架构 中台 整洁架构

简洁之道

1 2 3 4 5
Lombok使用(一) Lombok使用(二) MapStruct使用(一) MapStruct使用(二) commons-lang3使用
commons-collections4使用 commons-io使用 guava使用 spring中工具类 beanvalidation简介
分组校验、级联校验、自定义验证规则 快速失败、非bean入参校验 整合springboot

基于JVM解释执行

  • Kotlin
1 2 3 4 5
kotlin入门
  • Scala
1 2 3 4 5
sacla简介与环境配置 构建scala项目 使用maven构建scala项目
posted @ 2022-06-23 23:39  DogLeftover  阅读(165)  评论(0编辑  收藏  举报