数据结构和算法—核心内容
1.数组高级应用:数组元素的的二分查找算法,经典算法剖析及实践、动态数组应用实践
2.链表高级应用:单向链表、双向链表、循环链表、手写双向链表
3.队列与栈高级应用:队列与栈结构分析、基于数组和数组手写队列、阻塞队列
4.散列表高级应用:散列表、散列函数分析、散列冲突解决方案、手写HashMap对象
5.树结构高级应用:二叉树、平衡树、二三树、红黑树分析以及实践
数据结构和算法—培养目标
1.从细节到宏观,充分展现了数据结构与算法的魅力
2.让计算机的核心功能-"计算”更加的高效和低耗
3.夯实基础,加强数据结构和算法的“内功”,助力更好基础架构的设计
4.掌握核心算法和数据结构、提升编程技能,训练结构化思维的有效手段
5.掌握从用轮子到造轮子 (设计API) 的技巧和方法
数据结构和算法一贯穿案例
1.排席算法:冒泡排序、选择排席、插入排序、希尔排席、归并排序、快速排序
2.递归算法:斐波那契数列、汉诺塔问题、青蛙跳台阶问题、全排列问题、爬楼梯问题
3.二叉树算法:对称二叉树、二叉树的最大深度、翻转二叉树、二叉树的最近公共祖先
4.链表算法:合并有序链表、反转链表、环形链表、链表的中间节点
5.哈希表算法:数组重复元素、最长和谐子席列、最长连续序列、最长连续序列
6.动态数组: 动态数组(SimpleArravList)设计及代码实现、总结其优势、劣势
7.动态链表: 双向动态链表(SimpleLinkedList)设计及代码实现、总结其优势、劣势
8.散列表:散列表(SimpleHashMap)数据结构设计及实现,总结其优势、劣势
9.红黑树:红黑树的背是、演进逻辑以及实现
高级IO及并发编程—核心内容
1.序列化设计:从实际出发解锁深拷贝、浅拷贝应用设计,掌握核心序列化框架应用
2.并发设计:深度认识 Java 内存模型、死锁产生的原因和解决方案、线程间的协作机制
3.并发工具类:Lock和Condition、ReadWriteLock、Semaphore、CountDownLatch等
4.RPC产品分析:鸟瞰大厂RPC核心产品设计并手写TRPC
高级IO及并发编程—培养目标
1.Lambda与Stream流式运算原理与使用详解。
2.深度理解BIO/NIO/AIO模型
3.熟悉多进程、多线程、并行、并发的逻辑及原理。
4.掌握多线程并发安全、锁的设计、Happen-Before原则、死锁问题以及解决方案
5.掌握J.U.C包中原子类、并发工具类、AQS底层原理、线程池的高级应用
6.掌握进程内、进程间的通讯逻辑及实现方案
7.掌握NIO技术以及并发框架Netty的基本应用
8.掌握RPC(远程过程调用)应用场景以及相关技术方案的落地设计
高级IO及并发编程—贯穿案例
1.解锁阻塞BlockingQueue接口及实现类的设计、手写阻塞式队列(JUC)
2.解锁CopyOnWriteArrayList、ConcurrentHashMap对象应用实践
3.洞悉NIO(Netty)核心技术以及关键API的应用
4.洞悉高性能限流器 Guava RateLimiter、高性能队列Disrupptor设计
5.多人聊天室、手写RPC框架(TRPC)
数据库最佳实践—核心内容
1.MySQL基础篇:存储引擎、数据库及表设计规范、SQL工作机制、执行顺序、过程分析
2.MySQL实战篇:多表关联、核心函数、Case When表达式、事务底层逻辑、并发问题
3.MySQL原理篇:全局锁、表锁、行锁、间歇锁及MVCC多版本并发控制
4.MySQL索引篇:索引类型、聚簇和非聚簇索引、B+Tree数据结构、回表查询
5.MySQL调优篇:优秀SQL设计、慢SQL查询、执行计划Explain、Profile分析
Redis基础篇:核心数据类型、底层数据存储结构
6.Redis实战篇:持久化设计逻辑,RDB与AOF持久化方式、混合持久化,生产环境配置
7.Redis问题篇:分布式锁设计,缓存穿透、击穿、雪崩问题以及解决方案
8.Redis高级篇:分布式锁设计及实战、缓存淘汰策略以及各自的优缺点分析及实践
Redis架构篇:高可用架构中的主从架构、哨兵机制、集群架构设计及原理分析
数据库最佳实践—培养目标
1.培养优秀的数据库实用型、项目核心业务落地专家
2.掌握最流行关系型数据MySQL设计以及SQL的基本应用
3.掌握MySQL数据库中的表设计、锁设计、索引设计、SQL调优的基本手段
4.掌握Redis应用场景、核心数据类型以及底层数据结构设计、线程模型、分布式锁的设计
5.掌握Redis数据可靠性中持久化设计逻辑,持久化方式以及优缺点分析。
6.掌握Redis高可用设计中的主从架构、哨兵机制、集群架构设计逻辑
数据库最佳实践—贯穿案例
1.资讯平台、慕课平台表设计规范、核心字段及表关系设计,SQL调优设计
2.咨询平台中Redis数据的持久化、数据一致性设计、分布式锁、集群高可用架构
消息中台及源代码分析—核心内容
1.MyBatis执行流程源码分析、缓存设计源码分析、拦截器源码分析
2.Spring启动流程分析,IOC容器设计、AOP原理分析
3.掌握SpringBoot启动、自动配置的基本原理
4.消息队列的中消息的可靠性设计、幂等设计、顺序性设计、消息积压问题的解决
5.Spring框架中Stream技术与消息中间件的整合应用
6.洞悉Spring 5 内置的响应式编程框架,并基于WebFlux 来构建响应式 RESTful 服务
7.开源项目设计以及消息中台核心模块设计(任务管理、供应商管理、签名管理、消息模板、C端APP、消息分发)及实现
消息中台及源代码分析—培养目标
1.掌握数据层MyBatis底层核心设计逻辑,设计原则及模式
2.掌握Spring IOC,MVC,AOP底层源码分析,设计原则及模式
3.掌握Spring5响应式编程设计及实现
4.掌握RabbitMQ/RocketMQ/Kafka选型、配置、启动运行、应用、核心特性应用
5.掌握开源项目消息中台核心架构、通讯原理分析及设计
消息中台及源代码分析—贯穿案例
1.手写持久层框架(SimpleMyBatis)
2.手写 Spring Boot Starter服务(例如,一个Starter中做不同MQ配置)
3.基于MQ实现开源消息中台整体设计、消息分发设计、队列消息的批量处理,供应商业务接口适配(阿里、华为)
4.基于AOP方式的用户行为日志的获取、异步(@Async)的记录(例如打到Kafka)、后续可输出到数据处理平台
智慧充电桩项目实战—核心内容
1.项目目功能性需求、非功能需求分析、基于Axure的原型设计
2.项目的核心业务架构、数据架构、技术架构设计
3.DDD战略和战术领域建模、核心域、支撑域、通用域的设计及实现
4.SpringCloudAlibaba微服务解决方案及组件Nacos、Dubbo、Sentinel、Seata应用
5.项目多级缓存架构、消息队列RabbitMQ、ES搜索引擎关键技术应用
6.基于Jmeter进行性能压力测试,prometheus与grafana实现服务监控
7.基于uni-app实现手机端地图、充电站列表、二维码扫描、充电监控功能
8.基于阿里云进行云端项目开发及部署(与阿里云合作)
9.基于Flink(JAVA)生态实现大数据用户行为分析、交易风险控制
智慧充电桩项目实战—培养目标
1.掌握软件架构演进历程
2.掌握充电桩架构设计中的五视图法,DDD领域设计的核心思想
3.掌握分布式架构、微服务软件架构主流解决方案以及落地的实现
4.掌握支撑高并发混合读写(10万/秒)的架构方案,并支持横向扩展
智慧充电桩项目实战—贯穿案例
1.智能充电桩充电模块、个人中心模块、搜索模块实战
2.智能充电优惠卷秒杀业务实战