一、课程简介
区块链技术是21世纪的重大创新技术,它是数字化资产的分布式账本,是构建价值互联网的基石,是驱动分享经济发展的新引擎。全栈区块链课程涵盖区块链底层开发,区块链应用开发,web前后端开发,比特币,以太坊,hyperledger,旨在打造基础扎实,知识面广,综合能力强的区块链技术引领者。
二、面向学员
1.刚刚毕业的技术小白
2.零基础想转行的非IT人员
3.希望从事区块链工作的在职IT人员
4.期望得到技能提升的研发人员
三、学习时长
5个月
四、课程特色
(一)就业范围广,发展潜力无限
课程涵盖前端、后端开发和移动端开发,就业范围可涵盖区块链前后端和业务方向,范围广,薪资高,发展潜力大。
(二)课程体系系统全面,全网最全区块链核心技术
1. 课程系统全面,课程包含前后端技术,比特币,以太坊,hyperledger,从区块链1.0版本到3.0版本全面系统学习区块链技术。
2. 课程通俗实用,手把手带着学员实现比特币,更深入掌握区块链技术的底层实现。
(三)5大实战项目,项目与企业需求无缝链接,学完即刻上岗
IPFS音乐电台应用、去中心化互联网彩票项目、区块链众筹项目、去中心化Dapp实战项目、农牧厅渔政管理系统。
五、课程内容
必修课程
第一阶段:区块链概念入门
课程简介
为了让大家快速的了解区块链是什么,能干什么事情,对区块链有一个全面的认识。
课程内容
Ø 从实体货币到数字货币
Ø 分布式记账
Ø 中心化和去中心化
Ø hash函数
Ø hash算法的安全性
Ø 分布式系统和数据一致性
Ø 通货膨胀和比特币
Ø 区块链技术的演化
Ø 区块链的应用场景
Ø 我到底需不需要区块链技术
Ø 如何鉴别区块链项目里的猪
Ø 区块链项目的评估方法
Ø icon和ipo和daico
Ø 关于区块链的错误认知
Ø 分布式系统的一些概念
Ø 区块链技术栈和学习线路图
Ø 区块链的技术现状
第二阶段:kotlin和编程基本功加强
课程简介
kotlin是一个非常具有潜力和启发性的编程语言,100%与Java兼容, 安卓开发谷歌官方指定语言,它吸收和借鉴了Java、 Scala、 Groovy、 C#、Go、JavaScript等语言的优点和特性,可以让大家脱离语言层面的纷争,把目光投向具体的业务。目前区块链金融和银行领域的解决方案corda就是采用kotlin编写,掌握kotlin语言有助于帮助程序员用极小的成本理解和学习其他编程语言。
课程内容
Ø kotlin入门
Ø kotlin基本语法
Ø 控制语句
Ø 区间和数组
Ø 函数
Ø 递归和尾递归优化
Ø 面向对象
Ø 集合
Ø 高阶函数和lambda表达式
Ø Dsl
Ø 实战项目:Kotlin版坦克大战
第三阶段:区块链项目开发前端基础
课程简介
去中心化Dapp的页面开发还是基于传统的Web2.0的技术,html/css/javascript是整个互联网页面的基石。
课程内容
Ø html+css
Ø JavaScript
Ø JQuery
Ø BootStrap响应式页面开发
Ø 经典案例:kotlin与javascript(canvas案例)
第四阶段:传统企业级微服务+分布式开发
课程简介
要想深入理解区块链去中心化分布式账本技术,必须对传统的中心化系统和分布式系统有理解。
课程内容
Ø mysql数据库
Ø JDBC连接池
Ø AJAX&Jquery
Ø cookie & session
Ø filter & RestFul
Ø http协议
Ø springboot
第五阶段:区块链前端和中间件开发
课程简介
技术的转型和发展不是一蹴而就的,区块链项目和传统项目的融合和互相补充是目前企业普遍采用的解决方案, 以太坊和hyperledger等区块链项目开发需求有更加组件化的前台和更加强大的中间件。
课程内容
Ø nodejs中间件开发
Ø vue前端框架
Ø react前端框架
第六阶段:区块链项目实战--IPFS音乐电台应用
第七阶段:以太坊区块链和智能合约实战
课程简介
以太坊是第二代的区块链技术, 智能合约实现价值转移,会有越来越多的应用场景。基于以太坊的智能合约开发可以解决各种各样的信任问题。有着非常广泛的应用场景,目前基于以太坊的创业公司众多,BAT等互联网巨头都有基于以太坊的相关应用,市场招聘量巨大。
课程内容
Ø 区块链理论基础
拜占庭将军问题
价值转移
公有链,私有链,联盟链
UTXO
Hash算法
merkle树
Pow/Pos;
时间戳
智能合约,dao组织
软分叉/硬分叉
以太坊、中心化和去中心化
Ø 区块链数学基础
二进制基础和真随机数
hash运算和数字加密
对称加密和非对称加密和数字签名
高阶模操作
指数和对数
RSA算法
ASCII编码
Base64编码和Base58编码;
Checksum;
比特币钱包和Vanity地址;
点对点网络的挑战
double speding问题
Ledger账本系统和UTXO方案
挖矿和区块链形成
TestNet
BIP比特币优化协议和行业标准
Ø 手把手带你实现比特币
手把手实现区块链生成(kotlin语言版)
手把手实现挖矿与工作证明(kotlin语言版)
Ø 以太坊与智能区块链
区块链与以太坊
以太坊客户端安装和运行
以太坊网络
智能合约编程入门
solitidy变量,方法,继承和事件
oracle(先知)
solitidy编程实战
去中心化应用HeimaDApp实战
Ø 项目1:去中心化互联网彩票
Ø 项目2:区块链众筹项目
Ø 项目3:去中心化Dapp实战项目
第八阶段:hyperledger企业级区块链项目开发
课程简介
hyperledger是IBM公司支持,linux基金会孵化的区块链商业级开发平台。hyperledger是可以广泛运用在私有链和联盟链上,国内有众多的大公司加入了hyperledger联盟。
课程内容
Ø 区块链3.0
Ø hyperledger fabric架构和常见组件
Ø hyperledger fabric集群平台搭建
Ø hyperledger fabric智能合约链码开发
Ø hyperledger fabric部署
Ø 项目实战:hyperledger fabric供应链溯源——农牧厅渔政管理系统
├── 1阶段 区块链项目开发Java基础
│ ├── 1-1Java基础
│ │ ├── 1 编程语言入门
│ │ │ ├── 01_编程语言入门.mp4
│ │ │ ├── 02_什么是编程.mp4
│ │ │ └── 03_程序简介.mp4
│ │ ├── 10 空字段串和空的区别
│ │ │ └── 11_空字符串和null的区别.mp4
│ │ ├── 11 变量综合练习
│ │ │ ├── 12_编码练习.mp4
│ │ │ ├── 13_变量练习.mp4
│ │ │ └── 14_变量测试.mp4
│ │ ├── 12 逻辑运算符
│ │ │ ├── 01_布尔类型.mp4
│ │ │ ├── 02_比较运算符.mp4
│ │ │ ├── 03_逻辑运算符.mp4
│ │ │ ├── 04_逻辑运算符相关的练习题.mp4
│ │ │ └── 05_逻辑运算符相关的练习题.mp4
│ │ ├── 13 条件语句高级
│ │ │ ├── 06_if入门.mp4
│ │ │ ├── 07_ifelseif入门(上).mp4
│ │ │ ├── 07_ifelseif入门(下).mp4
│ │ │ ├── 08_案例之还剩下多少分.mp4
│ │ │ └── 09_if语句以及逻辑运算符相关的选择题.mp4
│ │ ├── 14 方法专项练习
│ │ │ ├── 10_案例之吃饭和拉屎.mp4
│ │ │ └── 11_方法专项练习.mp4
│ │ ├── 15 数组
│ │ │ ├── 01_同时声明多个同类型的变量.mp4
│ │ │ ├── 02_数组简介.mp4
│ │ │ ├── 03_数组的第一种定义格式.mp4
│ │ │ ├── 04_数组的第二种定义格式.mp4
│ │ │ ├── 05_如何获取数组的长度.mp4
│ │ │ ├── 06_判断数组是否为空.mp4
│ │ │ ├── 07_数组的首尾元素比较.mp4
│ │ │ └── 08_数组相关的选择题.mp4
│ │ ├── 16 类和对象
│ │ │ ├── 09_面向对象极简介绍.mp4
│ │ │ ├── 10_API文档入门.mp4
│ │ │ └── 11_构造方法.mp4
│ │ ├── 17 字符串处理
│ │ │ ├── 12_String#concat()方法.mp4
│ │ │ ├── 13_String#length()方法.mp4
│ │ │ ├── 14_String#isEmpty()方法.mp4
│ │ │ ├── 15_String#equals()方法.mp4
│ │ │ ├── 16_String#charAt()方法.mp4
│ │ │ ├── 17_String#contains()方法.mp4
│ │ │ ├── 18_String#startsWith()&&endsWith()方法.mp4
│ │ │ ├── 19_String#equalsIgnoreCase()方法.mp4
│ │ │ ├── 20_String#indexOf()方法.mp4
│ │ │ ├── 21_String#lastIndexOf()方法.mp4
│ │ │ ├── 22_String#replace()方法.mp4
│ │ │ ├── 23_String#split()方法.mp4
│ │ │ ├── 24_String#substring()方法.mp4
│ │ │ ├── 25_String#toLowerCase()&&toUpperCase()方法.mp4
│ │ │ ├── 26_String#trim()方法.mp4
│ │ │ ├── 27_String类中的方法总结.mp4
│ │ │ └── 28_String类相关的选择题.mp4
│ │ ├── 2 变量入门
│ │ │ ├── 04_变量概述入门.mp4
│ │ │ ├── 05_定义变量的格式.mp4
│ │ │ ├── 06_变量名命名规范.mp4
│ │ │ ├── 07_修改变量的值.mp4
│ │ │ ├── 08_常见的数据类型.mp4
│ │ │ └── 09_变量相加.mp4
│ │ ├── 3 老王买瓜案例
│ │ │ └── 10_老王买瓜案例(if语句的铺垫).mp4
│ │ ├── 4 条件语句
│ │ │ ├── 11_if-else语句.mp4
│ │ │ ├── 12_if语句的练习题.mp4
│ │ │ └── 13_为什么要条件语句.mp4
│ │ ├── 5 循环简介
│ │ │ └── 14_循环简介.mp4
│ │ ├── 6 类和方法入门
│ │ │ ├── 01_如何定义类和方法.mp4
│ │ │ ├── 01_方法练习.mp4
│ │ │ ├── 02_输出语句.mp4
│ │ │ ├── 03_变量练习.mp4
│ │ │ └── 04_Java中常见的数据类型.mp4
│ │ ├── 7 简易计算器案例
│ │ │ ├── 05_制作简易版的计算器(加减乘除方法).mp4
│ │ │ └── 06_如何调用方法.mp4
│ │ ├── 8 变量高级
│ │ │ ├── 07_和变量相关的一些选择题.mp4
│ │ │ ├── 07_局部变量和成员变量的概述.mp4
│ │ │ └── 08_局部变量和成员变量的区别.mp4
│ │ └── 9 运算符
│ │ ├── 09_算数运算符.mp4
│ │ └── 10_赋值运算符.mp4
│ ├── 1-2面向对象
│ │ ├── 1 Eclipse入门
│ │ │ ├── 01_Eclipse简介.mp4
│ │ │ ├── 02_Eclipse中HelloWorld案例.mp4
│ │ │ ├── 03_Eclipse的视窗和视图概述.mp4
│ │ │ ├── 04_Eclipse工作空间的基本配置.mp4
│ │ │ ├── 05_Eclipse中内容辅助键的使用.mp4
│ │ │ ├── 06_Eclipse中快捷键的使用.mp4
│ │ │ └── 07_Eclipse中如何删除项目和导入项目.mp4
│ │ ├── 2 面向对象和封装
│ │ │ ├── 08_面向对象入门.mp4
│ │ │ ├── 09_获取长方形的面积.mp4
│ │ │ ├── 10_人类案例.mp4
│ │ │ ├── 11_封装入门.mp4
│ │ │ ├── 12_封装的好处和弊端.mp4
│ │ │ ├── 13_封装详解.mp4
│ │ │ └── 14_标准的类的定义格式.mp4
│ │ ├── 3 面向对象综合案例
│ │ │ ├── 15_用户家具城案例分析.mp4
│ │ │ ├── 16_顾客类代码实现.mp4
│ │ │ ├── 17_卖家类代码实现.mp4
│ │ │ └── 18_测试类代码实现.mp4
│ │ └── 4 机器人对战游戏
│ │ ├── 01_游戏演示.mp4
│ │ ├── 02_this关键字.mp4
│ │ ├── 03_static关键字.mp4
│ │ ├── 04_final关键字讲解.mp4
│ │ ├── 05_Random类讲解.mp4
│ │ ├── 06_while循环.mp4
│ │ ├── 07_游戏业务分析.mp4
│ │ ├── 08_游戏UI部分_玩家和NPC交谈功能的实现.mp4
│ │ ├── 09_游戏UI部分_GameScreenUtils工具类的抽取.mp4
│ │ ├── 10_游戏功能部分_玩家打NPC的功能(上).mp4
│ │ ├── 10_游戏功能部分_玩家打NPC的功能(下).mp4
│ │ ├── 11_注释的补充讲解.mp4
│ │ ├── 12_游戏功能部分_NPC还击的过程.mp4
│ │ ├── 13_代码优化(上).mp4
│ │ └── 14_代码优化(下).mp4
│ ├── 1-3集合
│ │ ├── 1 HashMap集合
│ │ │ ├── 01_HashMap集合简介.mp4
│ │ │ ├── 02_HashMap集合的初始化.mp4
│ │ │ ├── 03_往HashMap集合中添加数据.mp4
│ │ │ ├── 04_泛型和包装类.mp4
│ │ │ ├── 05_HashMap#size()方法.mp4
│ │ │ ├── 06_集合相关的面试题.mp4
│ │ │ ├── 07_HashMap#get()方法.mp4
│ │ │ ├── 08_HashMap#isEmpty()方法.mp4
│ │ │ ├── 09_HashMap#containsKey()&&containsValue()方法.mp4
│ │ │ ├── 10_HashMap#clear().mp4
│ │ │ ├── 12_增强for.mp4
│ │ │ ├── 13_双列集合的遍历方式.mp4
│ │ │ └── 14_HashMap集合相关的选择题.mp4
│ │ ├── 2 ArrayList集合
│ │ │ ├── 15_ArrayList简介.mp4
│ │ │ ├── 16_ArrayList#get()方法.mp4
│ │ │ ├── 17_ArrayList#set()方法.mp4
│ │ │ ├── 18_ArrayList#remvoe()方法.mp4
│ │ │ ├── 19_ArrayList#isEmpty()方法.mp4
│ │ │ ├── 20_ArrayList#indexOf()&&lastIndexOf()方法.mp4
│ │ │ ├── 21_ArrayList#set()方法_代码版.mp4
│ │ │ ├── 22_ArrayList#toArray()方法.mp4
│ │ │ ├── 23_集合和数组的相互转换(理解即可).mp4
│ │ │ └── 24_ArrayList集合相关的选择题.mp4
│ │ └── 3 集合综合练习
│ │ └── 25_Map集合综合练习题.mp4
│ ├── 1-4继承和多态
│ │ ├── 1 继承
│ │ │ ├── 02_非继承版的老师类和学生类案例.mp4
│ │ │ ├── 03_继承版的老师类和学生类案例.mp4
│ │ │ ├── 04_Java中类与类之间的继承特点.mp4
│ │ │ ├── 05_继承的好处和弊端.mp4
│ │ │ ├── 06_继承的注意事项.mp4
│ │ │ ├── 07_this和super的区别(图解).mp4
│ │ │ ├── 08_继承中的成员访问特点之成员变量.mp4
│ │ │ ├── 09_继承中的成员访问特点之构造方法.mp4
│ │ │ ├── 10_继承中的成员访问特点之成员方法.mp4
│ │ │ ├── 11_方法重写的注意事项.mp4
│ │ │ └── 12_final关键字.mp4
│ │ ├── 2 抽象
│ │ │ ├── 13_抽象类的概述及其特点.mp4
│ │ │ └── 14_不能和abstract共存的关键字.mp4
│ │ ├── 3 接口
│ │ │ ├── 15_接口的概述及特点.mp4
│ │ │ ├── 16_接口的成员特点.mp4
│ │ │ ├── 17_类与接口之间的关系.mp4
│ │ │ └── 18_抽象类和接口的区别.mp4
│ │ ├── 4 多态
│ │ │ ├── 19_多态的概述和前提条件.mp4
│ │ │ ├── 20_多态中的成员访问特点.mp4
│ │ │ ├── 21_多态的好处和弊端.mp4
│ │ │ └── 22_动物类案例.mp4
│ │ └── 5 游戏界面
│ │ ├── 01_如何导出以及使用jar包.mp4
│ │ ├── 02_魂斗罗选择界面.mp4
│ │ ├── 03_微信打飞机案例V1版本.mp4
│ │ └── 04_微信打飞机案例V2版本.mp4
│ ├── 1-5java基础增强
│ │ ├── 1 循环遍历
│ │ │ ├── 05_while循环讲解.mp4
│ │ │ ├── 06_do.while循环.mp4
│ │ │ ├── 07_for循环.mp4
│ │ │ ├── 07_switch-case语句的练习题.mp4
│ │ │ ├── 08_for循环倒序打印.mp4
│ │ │ ├── 09_三种循环之间的区别.mp4
│ │ │ ├── 10_for循环求和思想(计算1-100之间的偶数和).mp4
│ │ │ ├── 11_增强for循环遍历数组.mp4
│ │ │ ├── 12_双列集合的第一种遍历方式.mp4
│ │ │ ├── 13_双列集合的第二种遍历方式.mp4
│ │ │ ├── 14_for循环嵌套之打印矩形.mp4
│ │ │ ├── 15_for循环嵌套之打印正三角形和倒三角形.mp4
│ │ │ ├── 16_for循环嵌套之打印九九乘法表.mp4
│ │ │ ├── 17_校验金额.mp4
│ │ │ └── 18_break和continue的区别.mp4
│ │ ├── 10 阶段性总结 & 补充
│ │ │ ├── 01_Java平台版本的划分.mp4
│ │ │ ├── 02_Java语言的特点.mp4
│ │ │ ├── 03_JDK的下载和安装.mp4
│ │ │ ├── 04_path环境变量的配置.mp4
│ │ │ ├── 05_三元运算符.mp4
│ │ │ ├── 06_switch-case语句.mp4
│ │ │ ├── 07_switch-case语句的练习题_p7wiK.mp4
│ │ │ ├── 08_方法重载.mp4
│ │ │ ├── 09_方法重写.mp4
│ │ │ ├── 10_成员变量和局部变量的区别.mp4
│ │ │ ├── 11_对象的初始化过程.mp4
│ │ │ ├── 12_instanceof关键字.mp4
│ │ │ ├── 13_包.mp4
│ │ │ ├── 14_代码块.mp4
│ │ │ ├── 15_HashSet集合.mp4
│ │ │ ├── 16_集合的体系图.mp4
│ │ │ ├── 17_单列集合的遍历方式.mp4
│ │ │ ├── 18_双列集合的遍历方式.mp4
│ │ │ ├── 19_并发修改异常.mp4
│ │ │ ├── 20_Collections工具类.mp4
│ │ │ ├── 21_内存输出流.mp4
│ │ │ ├── 22_Properties集合类.mp4
│ │ │ └── 23_多线程的声明周期图.mp4
│ │ ├── 2 工具类和正则表达式
│ │ │ ├── 19_如何定义一个工具类.mp4
│ │ │ ├── 20_校验手机号_自己写校验代码.mp4
│ │ │ ├── 21_正则校验手机号.mp4
│ │ │ ├── 22_正则校验邮箱.mp4
│ │ │ └── 23_通过正则表达式切割字符串.mp4
│ │ ├── 3 集合补充案例
│ │ │ ├── 24_ArrayList集合去重.mp4
│ │ │ └── 25_debug调试.mp4
│ │ ├── 4 异常
│ │ │ ├── 01_异常的概述和分类.mp4
│ │ │ ├── 02_编译期异常和运行时异常的区别.mp4
│ │ │ ├── 03_异常的两种处理方式及区别.mp4
│ │ │ ├── 04_finally关键字.mp4
│ │ │ └── 05_finally关键字相关的面试题.mp4
│ │ ├── 6 File文件
│ │ │ ├── 06_File类的概述及构造方法.mp4
│ │ │ ├── 07_绝对路径和相对路径的区别.mp4
│ │ │ ├── 08_File类的创建和删除功能.mp4
│ │ │ ├── 09_File类的获取功能.mp4
│ │ │ ├── 10_File类的判断功能.mp4
│ │ │ ├── 11_File类的list()和listFiles()方法.mp4
│ │ │ ├── 12_匿名内部类.mp4
│ │ │ └── 13_文件名称过滤器.mp4
│ │ ├── 7 递归
│ │ │ ├── 14_递归的概述和注意事项.mp4
│ │ │ ├── 15_递归计算5的阶乘.mp4
│ │ │ ├── 16_Debug调试_查看计算5的阶乘的过程.mp4
│ │ │ ├── 17_递归打印文件夹.mp4
│ │ │ └── 18_递归打印文件夹(加入键盘录入的功能).mp4
│ │ ├── 8 流操作
│ │ │ ├── 19_IO流的概述和分类.mp4
│ │ │ ├── 20_三个特殊的字符值.mp4
│ │ │ ├── 21_字节流读取数据.mp4
│ │ │ ├── 22_字节流写入数据.mp4
│ │ │ ├── 23_字节流拷贝图片(一次读写一个字节).mp4
│ │ │ ├── 24_字节流拷贝文件(一次读写一个字节数组).mp4
│ │ │ ├── 25_字符流拷贝文件(一次读写一个字符).mp4
│ │ │ ├── 26_字符流拷贝文件(一次读写一个字符数组).mp4
│ │ │ ├── 27_字符流和字节流的应用场景.mp4
│ │ │ ├── 28_高效字符流一次读写一行.mp4
│ │ │ ├── 29_IO流读写方式总结.mp4
│ │ │ ├── 30_制作空文件.mp4
│ │ │ ├── 31_从网络中下载资源.mp4
│ │ │ ├── 32_JDK1.6及其以前IO流的标准异常处理代码.mp4
│ │ │ ├── 33_JDK1.7及其以后IO流的标准异常处理代码.mp4
│ │ │ ├── 34_复制文件夹.mp4
│ │ │ └── 35_commons-IO第三方jar包复制文件夹.mp4
│ │ └── 9 多线程
│ │ ├── 01_多线程的概述.mp4
│ │ ├── 02_多线程并行和并发的区别.mp4
│ │ ├── 03_多线程的第一种实现方式.mp4
│ │ ├── 04_多线程的第二种实现方式.mp4
│ │ ├── 05_多线程两种实现方式的区别.mp4
│ │ ├── 06_多线程模拟卖票案例.mp4
│ │ ├── 07_多线程模拟卖票出现安全问题.mp4
│ │ ├── 08_用同步代码块解决多线程模拟卖票出现的问题.mp4
│ │ ├── 09_线程同步和效率的问题.mp4
│ │ ├── 10_实现Runnable接口的方式实现卖票.mp4
│ │ ├── 11_非静态同步方法.mp4
│ │ ├── 12_静态同步方法.mp4
│ │ ├── 13_死锁.mp4
│ │ └── 14_实现Runnable接口的原理.mp4
│ └── 1-6坦克大战
│ ├── 1 项目初始化
│ │ ├── 01_项目演示.mp4
│ │ ├── 02_新建工作空间.mp4
│ │ ├── 03_设计模式的概述.mp4
│ │ ├── 04_模板方法设计模式.mp4
│ │ ├── 05_lwjgl_jar包简介.mp4
│ │ ├── 06_创建第一个窗体.mp4
│ │ ├── 07_页面渲染.mp4
│ │ ├── 08_输入输出以及坐标计算.mp4
│ │ ├── 09_绘制图片.mp4
│ │ ├── 10_播放声音.mp4
│ │ └── 11_综合小案例.mp4
│ ├── 2 窗口元素绘制
│ │ ├── 12_坦克大战案例窗体绘制.mp4
│ │ ├── 13_绘制一个砖墙.mp4
│ │ ├── 14_绘制一堆砖墙.mp4
│ │ ├── 15_绘制一堆水墙,铁墙,草坪.mp4
│ │ ├── 16_抽取Element父类统一管理元素.mp4
│ │ └── 17_坦克的绘制.mp4
│ ├── 3 坦克移动
│ │ ├── 18_坦克的移动和越界处理.mp4
│ │ └── 19_坦克炮口的随向转动.mp4
│ ├── 4 子弹发射
│ │ ├── 01_优化项目中的三个小细节.mp4
│ │ ├── 02_子弹的移动.mp4
│ │ ├── 03_调整子弹的发射频率.mp4
│ │ ├── 04_播放子弹的发射声音.mp4
│ │ ├── 05_销毁出界的子弹.mp4
│ │ ├── 20_坦克发射子弹.mp4
│ │ ├── 21_子弹的坐标计算.mp4
│ │ └── 22_子弹坐标计算方式优化.mp4
│ ├── 5 坦克隐藏
│ │ ├── 06_坦克隐藏到草坪中(简单做法).mp4
│ │ ├── 07_Comparator接口简介.mp4
│ │ └── 08_让坦克隐藏到草坪中(Comparator比较器接口实现).mp4
│ ├── 6 碰撞检测
│ │ ├── 09_Collision工具类解释(碰撞检测原理).mp4
│ │ ├── 10_坦克和铁墙的碰撞检测(上).mp4
│ │ ├── 11_坦克和铁墙的碰撞检测(下).mp4
│ │ ├── 12_抽取Moveable接口和Blockable接口.mp4
│ │ ├── 13_子弹和铁墙的校验上.mp4
│ │ ├── 13_子弹和铁墙的校验下.mp4
│ │ └── 14_抽取Attackable接口和Hitable接口.mp4
│ └── 7 爆炸物处理
│ ├── 15_优化爆炸物的坐标.mp4
│ ├── 16_优化爆炸物图片的绘制个数.mp4
│ ├── 17_销毁需要销毁的爆炸物.mp4
│ └── 18_抽取Destroyable接口.mp4
├── 2阶段 区块链概念入门
│ └── 区块链概念入门
│ ├── 01_从实体货币到数字货币.mp4
│ ├── 02_分布式记账.mp4
│ ├── 03_中心化和去中心化.mp4
│ ├── 04_hash函数.mp4
│ ├── 05_hash算法的安全性.mp4
│ ├── 06_分布式系统和数据一致性.mp4
│ ├── 07_通货膨胀和比特币.mp4
│ ├── 08_区块链技术的演化.mp4
│ ├── 09_区块链的应用场景.mp4
│ ├── 10_我到底需不需要区块链技术.mp4
│ ├── 11_如何鉴别区块链项目里的猪.mp4
│ ├── 12_区块链项目的评估方法.mp4
│ ├── 13_ico和ipo和daico.mp4
│ ├── 14_关于区块链的错误认知.mp4
│ ├── 15_分布式系统的一些概念.mp4
│ ├── 16_区块链技术栈和学习线路图.mp4
│ └── 17_区块链的技术现状.mp4
├── 3阶段 kotlin和变成基本功加强
│ ├── 3-1 kotlin基础语法
│ │ ├── 1 kotlin介绍
│ │ │ ├── 02.kotlin简介.mp4
│ │ │ ├── 03.kotlin发展趋势.mp4
│ │ │ ├── 04.kotlin优点.mp4
│ │ │ ├── 05.kotlin前景.mp4
│ │ │ └── 06.参考资料.mp4
│ │ ├── 10 函数
│ │ │ ├── 27.输入和输出函数.mp4
│ │ │ ├── 28.四种函数.mp4
│ │ │ └── 29.顶层函数和嵌套函数.mp4
│ │ ├── 11 字符串模板
│ │ │ └── 30.字符串模板.mp4
│ │ ├── 12 条件语句
│ │ │ └── 31.条件控制语句if.mp4
│ │ ├── 13 循环
│ │ │ ├── 02.for循环和foreach循环.mp4
│ │ │ ├── 03.continue和break.mp4
│ │ │ ├── 04.标签处返回.mp4
│ │ │ ├── 05.while和do while.mp4
│ │ │ └── d2-01.回顾.mp4
│ │ ├── 14 区间
│ │ │ ├── 06.区间定义.mp4
│ │ │ ├── 07.区间的遍历.mp4
│ │ │ └── 08.反向区间和区间的反转.mp4
│ │ ├── 15 数组
│ │ │ ├── 09.数组创建.mp4
│ │ │ ├── 10.数组元素的修改.mp4
│ │ │ └── 11.数组元素角标的查找.mp4
│ │ ├── 16 when表达式
│ │ │ ├── 12.java的switch语句回顾.mp4
│ │ │ ├── 13.when表达式.mp4
│ │ │ ├── 14.when表达式加强.mp4
│ │ │ ├── 15.when表达式原理.mp4
│ │ │ ├── 16.when表达式不带参数.mp4
│ │ │ ├── 17.when表达式返回值.mp4
│ │ │ └── 18.when表达式练习.mp4
│ │ ├── 17 函数表达式
│ │ │ ├── 19.函数表达式.mp4
│ │ │ └── 20.函数引用和匿名函数.mp4
│ │ ├── 18 函数参数
│ │ │ ├── 21.默认参数和具名参数.mp4
│ │ │ └── 22.可变参数.mp4
│ │ ├── 19 kotlin异常处理
│ │ │ ├── 23.kotlin的异常处理.mp4
│ │ │ └── 24.上午回顾.mp4
│ │ ├── 2 IDEA下载安装
│ │ │ ├── 07.idea下载.mp4
│ │ │ └── 08.idea启动.mp4
│ │ ├── 20 递归
│ │ │ ├── 25.递归.mp4
│ │ │ ├── 26.斐波那契数列.mp4
│ │ │ ├── 27.递归和迭代的对比.mp4
│ │ │ └── 28.尾递归优化.mp4
│ │ ├── 3 IDEA使用
│ │ │ ├── 09.helloworld.mp4
│ │ │ ├── 10.导入设置.mp4
│ │ │ ├── 11.java和kotlin运行流程.mp4
│ │ │ └── 12.查看kotlin对应的java代码.mp4
│ │ ├── 4 kotlin数据类型
│ │ │ ├── 13.基本数据类型定义.mp4
│ │ │ ├── 14.和java基本数据类型对比.mp4
│ │ │ └── 15.基本数据类型取值范围.mp4
│ │ ├── 5 二进制
│ │ │ └── 16.二进制基础.mp4
│ │ ├── 6 变量定义
│ │ │ ├── 17.kotlin调用java.mp4
│ │ │ ├── 18.智能类型推断和类型转换.mp4
│ │ │ └── 19.可变变量和不可变变量.mp4
│ │ ├── 7 字符串
│ │ │ ├── 20.字符串两种定义.mp4
│ │ │ ├── 21.字符串删除空格.mp4
│ │ │ ├── 22.字符串比较.mp4
│ │ │ └── 23.字符串切割和截取.mp4
│ │ ├── 8 元组
│ │ │ └── 24.二元元组和三元元组.mp4
│ │ └── 9 空值处理
│ │ ├── 25.空指针异常.mp4
│ │ └── 26.空值处理运算符.mp4
│ ├── 3-10 gradle
│ │ ├── 1 三种构建工具
│ │ │ ├── 02.原始人的工作方式.mp4
│ │ │ ├── 03.三种构建工具对比.mp4
│ │ │ └── 04.gradle简介.mp4
│ │ ├── 10 多模块构建
│ │ │ ├── 30.多模块构建简介.mp4
│ │ │ ├── 31.多模块的依赖.mp4
│ │ │ └── 32.多模块构建.mp4
│ │ ├── 11 groovy入门
│ │ │ ├── 33.查看groovy编写的gradle脚本.mp4
│ │ │ ├── 34.总结.mp4
│ │ │ └── d8-01.回顾.mp4
│ │ ├── 2 gradle使用入门
│ │ │ ├── 05.gradle下载和配置.mp4
│ │ │ ├── 06.gradle项目初始化.mp4
│ │ │ └── 07.gradle打包.mp4
│ │ ├── 3 gradle构建kotlin开发
│ │ │ ├── 08.静态语言和动态语言.mp4
│ │ │ └── 09.gradle支持kotlin开发.mp4
│ │ ├── 4 task任务
│ │ │ ├── 10.project和task.mp4
│ │ │ ├── 11.第一个task任务.mp4
│ │ │ ├── 12.task依赖.mp4
│ │ │ ├── 13.task生命周期.mp4
│ │ │ ├── 14.tasks任务集.mp4
│ │ │ └── 15.默认属性.mp4
│ │ ├── 5 增量更新
│ │ │ └── 16.增量更新.mp4
│ │ ├── 6 gradle使用插件
│ │ │ └── 17.常见的插件.mp4
│ │ ├── 7 手动添加依赖
│ │ │ ├── 18.下载和导入httpclient的jar包.mp4
│ │ │ ├── 19.使用httpclient.mp4
│ │ │ └── 20.解决httpclient依赖的问题.mp4
│ │ ├── 8 gradle添加依赖
│ │ │ ├── 21.高级程序员做法.mp4
│ │ │ ├── 22.两种方案对比.mp4
│ │ │ ├── 23.依赖管理的总结.mp4
│ │ │ ├── 24.常见的仓库.mp4
│ │ │ ├── 25.依赖的坐标.mp4
│ │ │ └── 26.依赖的配置阶段.mp4
│ │ └── 9 gradle依赖冲突解决方法
│ │ ├── 27.版本冲突第一种解决方案.mp4
│ │ ├── 28.依赖冲突的解决.mp4
│ │ └── 29.扩展gradle任务.mp4
│ ├── 3-11 协程
│ │ ├── 1 线程2种开启方式
│ │ │ ├── 01.工程准备.mp4
│ │ │ └── 02.创建线程的两种方式.mp4
│ │ ├── 10 协程和线程
│ │ │ └── 20.线程和协程效率对比.mp4
│ │ ├── 11 协程取消
│ │ │ ├── 21.协程取消.mp4
│ │ │ ├── 22.协程取消失效.mp4
│ │ │ └── 23.协程取消失效的处理.mp4
│ │ ├── 12 协程异步启动
│ │ │ ├── 24.协程async启动.mp4
│ │ │ └── 25.协程上下文指定.mp4
│ │ ├── 2 线程安全问题
│ │ │ ├── 03.通过Thread直接卖票缺点.mp4
│ │ │ ├── 04.通过Runnable方式共享线程间数据.mp4
│ │ │ └── 05.线程安全问题解决.mp4
│ │ ├── 3 线程join
│ │ │ └── 06.线程join.mp4
│ │ ├── 4 守护线程
│ │ │ └── 07.守护线程.mp4
│ │ ├── 5 线程池
│ │ │ └── 08.线程池.mp4
│ │ ├── 6 协程入门
│ │ │ ├── 09.第一个协程启动.mp4
│ │ │ ├── 10.协程打印数据.mp4
│ │ │ └── 11.关闭https.mp4
│ │ ├── 7 协程源码解析
│ │ │ ├── 12.launch函数的参数和返回值.mp4
│ │ │ ├── 13.launch函数第一个参数.mp4
│ │ │ ├── 14.ForkJoinPool的原理.mp4
│ │ │ └── 15.协程启动之后的处理.mp4
│ │ ├── 8 协程实现原理
│ │ │ ├── 17.协程实现原理.mp4
│ │ │ └── 18.协程执行原理解析.mp4
│ │ └── 9 挂起函数
│ │ └── 19.挂起函数.mp4
│ ├── 3-12 版本控制
│ │ ├── 1 版本控控制工具介绍
│ │ │ ├── 02.版本控制工具作用.mp4
│ │ │ ├── 03.版本控制工具集中式和分布式.mp4
│ │ │ └── 04.git的产生.mp4
│ │ ├── 2 git提交文件
│ │ │ ├── 05.安装git.mp4
│ │ │ ├── 06.自我介绍给git_以后提交名称.mp4
│ │ │ ├── 07.git初始化.mp4
│ │ │ ├── 08.忽略文件.mp4
│ │ │ ├── 09.git status查看状态.mp4
│ │ │ ├── 10.添加和提交的命令.mp4
│ │ │ ├── 11.git log查看提交记录.mp4
│ │ │ ├── 12..gitignore作用.mp4
│ │ │ └── 13.提交流程回顾.mp4
│ │ ├── 3 版本回退
│ │ │ ├── 14.版本回退.mp4
│ │ │ ├── 15.回退到原来的版本.mp4
│ │ │ └── 16.小bug.mp4
│ │ ├── 4 git分支
│ │ │ ├── 17.分支创建切换和删除分支.mp4
│ │ │ ├── 18.分支合并1.mp4
│ │ │ └── 19.合并冲突解决.mp4
│ │ └── 5 Github的使用
│ │ ├── 20.github简介.mp4
│ │ ├── 21.生成公钥和私钥.mp4
│ │ ├── 22.创建远程仓库.mp4
│ │ ├── 23.关联远程仓库.mp4
│ │ ├── 24.推送到远程分支.mp4
│ │ ├── 25.推送其他分支.mp4
│ │ ├── 26.zhangsan分支开发及推送.mp4
│ │ ├── 27.zhangsan推送master分支到远程master分支.mp4
│ │ ├── 28.新用户克隆代码.mp4
│ │ ├── 29.lisi推送分支到远程分支.mp4
│ │ └── 30.推送到远程仓库冲突解决.mp4
│ ├── 3-2 kotlin面向对象
│ │ ├── 1 面向对象入门
│ │ │ └── 29.面向对象.mp4
│ │ ├── 2 运算符
│ │ │ ├── 02.运算符重载练习.mp4
│ │ │ ├── 30.kotlin的运算符.mp4
│ │ │ ├── 31.运算符.mp4
│ │ │ └── d3-01.回顾.mp4
│ │ ├── 3 访问器
│ │ │ ├── 03.get和set方法.mp4
│ │ │ ├── 04.访问器可见性.mp4
│ │ │ └── 05.修改访问器.mp4
│ │ ├── 4 kotlin对象创建过程
│ │ │ ├── 06.对象中init使用.mp4
│ │ │ ├── 07.构建函数参数使用var和val.mp4
│ │ │ ├── 08.次构函数定义.mp4
│ │ │ ├── 09.次构函数参数使用.mp4
│ │ │ └── 10.init和次构执行顺序.mp4
│ │ ├── 5 封装
│ │ │ └── 11.封装.mp4
│ │ ├── 6 继承
│ │ │ └── 12.继承.mp4
│ │ ├── 7 抽象
│ │ │ ├── 13.抽象类.mp4
│ │ │ └── 14.抽象类总结.mp4
│ │ ├── 8 接口
│ │ │ ├── 15.接口.mp4
│ │ │ ├── 16.接口中字段处理.mp4
│ │ │ ├── 17.接口中方法的实现.mp4
│ │ │ └── 18.多态.mp4
│ │ └── 9 面向对象综合案例
│ │ └── 19.智能类型转换.mp4
│ ├── 3-3 kotlin基础高级
│ │ ├── 1 嵌套类和内部类
│ │ │ ├── 20.嵌套类和内部类.mp4
│ │ │ └── 21.内部类中使用this.mp4
│ │ ├── 10 数据类
│ │ │ └── 19.数据类.mp4
│ │ ├── 11 密封类
│ │ │ └── 20.密封类.mp4
│ │ ├── 2 泛型
│ │ │ ├── 22.泛型类.mp4
│ │ │ ├── 23.泛型函数.mp4
│ │ │ ├── 24.回顾.mp4
│ │ │ ├── 25.泛型上限.mp4
│ │ │ ├── 26.泛型擦除.mp4
│ │ │ ├── 27.泛型类型投射.mp4
│ │ │ └── 28.星号投射.mp4
│ │ ├── 3 中缀表达式
│ │ │ ├── 02.中缀表达式.mp4
│ │ │ └── d4-01.回顾.mp4
│ │ ├── 4 类委托和属性委托
│ │ │ ├── 03.类委托.mp4
│ │ │ ├── 04.类委托实现方式二.mp4
│ │ │ ├── 05.委托加强.mp4
│ │ │ └── 06.属性委托.mp4
│ │ ├── 5 懒加载
│ │ │ ├── 07.by lazy惰性加载.mp4
│ │ │ └── 08.by lazy和lateinit.mp4
│ │ ├── 6 扩展函数
│ │ │ ├── 09.扩展函数.mp4
│ │ │ └── 10.父类扩展函数子类调用.mp4
│ │ ├── 7 单例模式
│ │ │ ├── 11.单例模式一_饿汉式.mp4
│ │ │ └── 12.单例模式二_懒汉式.mp4
│ │ ├── 8 object单例
│ │ │ ├── 13.object单例.mp4
│ │ │ ├── 14.object单例问题.mp4
│ │ │ ├── 15.伴生对象.mp4
│ │ │ └── 16.实现和java一样的单例.mp4
│ │ └── 9 枚举
│ │ ├── 17.枚举.mp4
│ │ └── 18.枚举的高级用法.mp4
│ ├── 3-4 集合
│ │ └── 1 集合函数
│ │ ├── 02.java集合回顾.mp4
│ │ ├── 03.koltin创建java的List集合.mp4
│ │ ├── 04.kotlin的set集合.mp4
│ │ ├── 05.map集合的创建.mp4
│ │ ├── 06.map集合的遍历.mp4
│ │ └── d5-01.回顾.mp4
│ ├── 3-5 lambda表达
│ │ └── 1 lambda表达
│ │ ├── 07.闭包.mp4
│ │ ├── 08.高阶函数.mp4
│ │ ├── 09.lambda表达式.mp4
│ │ ├── 10.lambda表达式去().mp4
│ │ ├── 11.有参lambda表达式.mp4
│ │ ├── 12.保存lamba表达式.mp4
│ │ ├── 13.lambda表达式使用it.mp4
│ │ ├── 14.lambda表达式返回值.mp4
│ │ ├── 15.常见lambda表达式foreach.mp4
│ │ └── 16.常见的lambda表达式indexoffirst.mp4
│ ├── 3-6 集合函数
│ │ ├── 1 集合函数
│ │ │ ├── 17.查询练习.mp4
│ │ │ ├── 18.过滤.mp4
│ │ │ ├── 19.排序.mp4
│ │ │ ├── 20.分组.mp4
│ │ │ ├── 21.最值.mp4
│ │ │ ├── 22.去重复.mp4
│ │ │ ├── 23.集合拆分.mp4
│ │ │ ├── 24.集合重新组合.mp4
│ │ │ ├── 25.集合相加.mp4
│ │ │ └── 26.上午回顾.mp4
│ │ └── 2 四大函数
│ │ ├── 27.大接收者的函数字面值.mp4
│ │ ├── 28.apply函数.mp4
│ │ ├── 29.let函数.mp4
│ │ ├── 30.with函数.mp4
│ │ └── 31.run函数.mp4
│ ├── 3-7 回调
│ │ ├── 1 接口回调
│ │ │ ├── 32.案例前提.mp4
│ │ │ ├── 33.接口回调.mp4
│ │ │ └── 34.接口回调流程.mp4
│ │ └── 2 函数回调
│ │ ├── 35.函数回调.mp4
│ │ └── 36.接口回调和函数回调的对比.mp4
│ ├── 3-8 集合函数综合案例
│ │ └── 1 集合函数综合案例
│ │ ├── 02.数据库案例查询.mp4
│ │ ├── 03.黑马商店练习.mp4
│ │ └── d6-01.回顾.mp4
│ └── 3-9 dsl
│ ├── 1 dsl入门
│ │ ├── 04.DSL简介.mp4
│ │ ├── 05.class的普通实现.mp4
│ │ ├── 06.实现person函数.mp4
│ │ ├── 07.实现name属性的赋值.mp4
│ │ ├── 08.address函数实现.mp4
│ │ ├── 09.address里面字段的使用.mp4
│ │ ├── 10.dsl流程.mp4
│ │ ├── 11.dsl优化.mp4
│ │ └── 12.dsl总结.mp4
│ ├── 2 dsl综合案例
│ │ ├── 13.普通实现html标签打印.mp4
│ │ ├── 14.html实现.mp4
│ │ ├── 15.head实现.mp4
│ │ ├── 16.body标签.mp4
│ │ └── 17.div标签.mp4
│ ├── 3 构建器模式
│ │ ├── 18.构建器模式.mp4
│ │ ├── 19.DSL构建器.mp4
│ │ ├── 20.通过构建器模式实现多个address.mp4
│ │ └── 21.多个address使用.mp4
│ └── 4 dsl缩小作用域
│ └── 22.缩小作用域.mp4
├── 4阶段 区@块链前端基础
│ ├── 4-1 HTML
│ │ ├── 2 html基础标签
│ │ │ ├── 05_标题标签.mp4
│ │ │ ├── 06_字体标签.mp4
│ │ │ ├── 07_颜色的使用.mp4
│ │ │ ├── 08_其他标签.mp4
│ │ │ └── 09_图片标签.mp4
│ │ ├── 1 html入门
│ │ │ ├── 02_入门.mp4
│ │ │ ├── 03_资料和软件.mp4
│ │ │ └── 04_html文档的基本结构.mp4
│ │ ├── 10 表单标签
│ │ │ ├── 21_基本表格.mp4
│ │ │ ├── 22_下拉框和文本域.mp4
│ │ │ ├── 23_常用属性和默认值.mp4
│ │ │ └── 24_表单的属性.mp4
│ │ ├── 11 html学习方法
│ │ │ └── 25_学习方法.mp4
│ │ ├── 3 案例_程序猿
│ │ │ └── 10_案例_程序猿.mp4
│ │ ├── 4 html列表标签
│ │ │ └── 11_列表标签.mp4
│ │ ├── 5 html超链接标签
│ │ │ └── 12_a标签.mp4
│ │ ├── 6 案例_友情链接
│ │ │ └── 13_案例_友情链接.mp4
│ │ ├── 7 案例_回到顶部
│ │ │ └── 14_案例_回到顶部.mp4
│ │ ├── 8 html表格标签
│ │ │ ├── 15_基本表格.mp4
│ │ │ ├── 16_表格的属性.mp4
│ │ │ ├── 17_表格的结构标签.mp4
│ │ │ ├── 18_行和列的删除.mp4
│ │ │ └── 19_单元格的合并.mp4
│ │ └── 9 html框架集标签
│ │ └── 20_框架集.mp4
│ ├── 4-2 CSS
│ │ ├── 1 css入门
│ │ │ ├── 01_CSS的简介.mp4
│ │ │ └── 02_入门_QcrI3.mp4
│ │ ├── 10 CSS定位
│ │ │ ├── 32_相对定位.mp4
│ │ │ ├── 33_绝对定位.mp4
│ │ │ ├── 34_浮动.mp4
│ │ │ └── 35_其他属性.mp4
│ │ ├── 2 css使用方法
│ │ │ ├── 03_使用方式1_行内样式.mp4
│ │ │ ├── 04_使用方式2_内部样式.mp4
│ │ │ ├── 05_使用方式3_外部样式.mp4
│ │ │ ├── 06_使用方式4_导入式样式.mp4
│ │ │ └── 07_优先级.mp4
│ │ ├── 3 css学习方法
│ │ │ └── 08_CSS学习方法.mp4
│ │ ├── 4 css选择器
│ │ │ ├── 09_标签选择器.mp4
│ │ │ ├── 10_类选择器.mp4
│ │ │ ├── 11_ID选择器.mp4
│ │ │ ├── 12_群组选择器.mp4
│ │ │ ├── 13_全局选择器.mp4
│ │ │ ├── 14_DOM的关系.mp4
│ │ │ ├── 15_后代选择器.mp4
│ │ │ ├── 16_子元素选择器.mp4
│ │ │ ├── 17_ID选择器.mp4
│ │ │ └── 18_伪类选择器.mp4
│ │ ├── 5 css继承
│ │ │ └── 19_继承.mp4
│ │ ├── 6 css层叠
│ │ │ └── 20_层叠.mp4
│ │ ├── 7 css命名规范
│ │ │ └── 21_命名规范.mp4
│ │ ├── 8 css常用样式
│ │ │ ├── 22_背景样式.mp4
│ │ │ ├── 23_文本样式.mp4
│ │ │ ├── 24_字体样式.mp4
│ │ │ ├── 25_列表样式.mp4
│ │ │ ├── 26_表格样式.mp4
│ │ │ └── 27_轮廓样式.mp4
│ │ └── 9 盒子模型
│ │ ├── 28_盒子的简介.mp4
│ │ ├── 29_内边距和外边距.mp4
│ │ ├── 30_盒子的注意事项.mp4
│ │ └── 31_HTML元素的分类.mp4
│ ├── 4-3 JavaScript
│ │ ├── 1 js简介
│ │ │ └── 01_js的简介.mp4
│ │ ├── 10 案例_隔行换色
│ │ │ └── 案例6_各行换色.mp4
│ │ ├── 11 案例_全选全不选
│ │ │ └── 案例7_全选全不选.mp4
│ │ ├── 12 案例_省市联动
│ │ │ └── 案例8_省市联动.mp4
│ │ ├── 2 js基础语法
│ │ │ ├── 02_基本数据类型.mp4
│ │ │ ├── 03_运算符.mp4
│ │ │ ├── 04_流程控制语句.mp4
│ │ │ ├── 05_函数的定义.mp4
│ │ │ ├── 06_函数绑定的第一种方式.mp4
│ │ │ ├── 07_函数绑定的第二种方式.mp4
│ │ │ ├── 08_数组.mp4
│ │ │ ├── 09_正则表达式.mp4
│ │ │ └── 10_日期对象.mp4
│ │ ├── 3 DOM介绍
│ │ │ ├── 11_元素的查找.mp4
│ │ │ ├── 12_设置CSS样式.mp4
│ │ │ ├── 13_内容的获取和设置.mp4
│ │ │ ├── 14_属性的获取和设置.mp4
│ │ │ ├── 15_鼠标相关的事件.mp4
│ │ │ ├── 16_输入框相关的事件.mp4
│ │ │ ├── 17_表单提交事件.mp4
│ │ │ ├── 18_onChange事件.mp4
│ │ │ └── 19_键盘事件.mp4
│ │ ├── 4 BOM介绍
│ │ │ ├── 01_window介绍1.mp4
│ │ │ ├── 02_定时器.mp4
│ │ │ └── 03_history和location.mp4
│ │ ├── 5 案例_记事本
│ │ │ ├── 案例1记事本_实现.mp4
│ │ │ └── 案例1记事本_思路分析.mp4
│ │ ├── 6 案例_任务清单
│ │ │ ├── 案例2任务清单_1_保存数据.mp4
│ │ │ ├── 案例2任务清单_2_加载数据.mp4
│ │ │ ├── 案例2任务清单_3_修复bug.mp4
│ │ │ ├── 案例2任务清单_4_设置样式.mp4
│ │ │ └── 案例2任务清单_实现思路.mp4
│ │ ├── 7 案例_表单校验
│ │ │ ├── 案例3表单校验_1_手机号和密码的校验.mp4
│ │ │ ├── 案例3表单校验_2_其他校验.mp4
│ │ │ └── 案例3表单校验_3_校验表单.mp4
│ │ ├── 8 案例_轮播图
│ │ │ └── 案例4_轮播图.mp4
│ │ └── 9 案例_弹出广告
│ │ └── 案例5_弹出广告.mp4
│ ├── 4-4 JQuery
│ │ ├── 1 简介
│ │ │ ├── 01_jQuery的简介.mp4
│ │ │ └── 02_jQuery的学习方法.mp4
│ │ ├── 10 JQuery Validation的使用
│ │ │ ├── 08_验证插件的使用.mp4
│ │ │ └── 09_自定义校验规则.mp4
│ │ ├── 11 百度API简介
│ │ │ └── 10_百度地址的自动完成.mp4
│ │ ├── 12 省市联动插件
│ │ │ └── 11_省市区联动插件.mp4
│ │ ├── 2 JQuery中的API的介绍
│ │ │ ├── 03_jQuery对象和dom对象的转换.mp4
│ │ │ ├── 04_页面加载成功的函数.mp4
│ │ │ ├── 05_事件的绑定.mp4
│ │ │ ├── 06_常见事件.mp4
│ │ │ ├── 07_效果的API.mp4
│ │ │ ├── 08_基础选择器.mp4
│ │ │ ├── 09_层级选择器.mp4
│ │ │ ├── 10_筛选器.mp4
│ │ │ ├── 11_包含选择器.mp4
│ │ │ ├── 12_可见性过滤器.mp4
│ │ │ ├── 13_属性过滤器.mp4
│ │ │ ├── 14_表单过滤器.mp4
│ │ │ ├── 15_属性的设置和获取.mp4
│ │ │ ├── 15获取和设置CSS属性.mp4
│ │ │ ├── 16_遍历.mp4
│ │ │ ├── 17_操作元素的内容.mp4
│ │ │ ├── 18_文档的处理.mp4
│ │ │ ├── 19_表单对象的方法.mp4
│ │ │ └── 20_其他方法.mp4
│ │ ├── 3 案例_轮播图
│ │ │ └── 01_轮播图.mp4
│ │ ├── 4 案例_弹出广告
│ │ │ ├── 02_弹出广告.mp4
│ │ │ └── 02_弹出广告动画效果.mp4
│ │ ├── 5 案例_隔行换色
│ │ │ └── 03_隔行换色.mp4
│ │ ├── 6 案例_全选全不选
│ │ │ └── 04_全选全不选.mp4
│ │ ├── 7 案例_省市联动
│ │ │ └── 05_省市联动.mp4
│ │ ├── 8 案例_左右移动
│ │ │ └── 06_左右移动.mp4
│ │ └── 9 github的使用
│ │ └── 07_github的使用.mp4
│ ├── 4-5 BootStrap
│ │ ├── 1 简介
│ │ │ └── 01_简介.mp4
│ │ ├── 2 全局CSS样式
│ │ │ ├── 02_使用步骤.mp4
│ │ │ ├── 03_排版样式.mp4
│ │ │ ├── 04_代码样式.mp4
│ │ │ ├── 05_表格样式.mp4
│ │ │ ├── 06_基本表格.mp4
│ │ │ ├── 07_内联表单.mp4
│ │ │ ├── 08_栅格系统.mp4
│ │ │ ├── 09_水平表格.mp4
│ │ │ ├── 10_移动设备优先.mp4
│ │ │ ├── 11_表单的其他使用.mp4
│ │ │ └── 13_其他样式.mp4
│ │ ├── 3 BootStrap组件
│ │ │ ├── 14_下拉菜单.mp4
│ │ │ ├── 15_按钮组.mp4
│ │ │ ├── 16_按钮式下拉菜单.mp4
│ │ │ ├── 17_导航.mp4
│ │ │ ├── 18_导航条.mp4
│ │ │ ├── 19_固定导航条.mp4
│ │ │ ├── 20_路径导航_分页_标签_徽章.mp4
│ │ │ ├── 21_巨幕.mp4
│ │ │ ├── 22_缩略图.mp4
│ │ │ ├── 23_警告框.mp4
│ │ │ ├── 24_进度条.mp4
│ │ │ ├── 25_媒体对象.mp4
│ │ │ ├── 26_列表组.mp4
│ │ │ ├── 27_面板组.mp4
│ │ │ └── 28_响应式嵌入内容.mp4
│ │ └── 4 JavaScript插件
│ │ ├── 29_模态框.mp4
│ │ └── 30_轮播图.mp4
│ └── 4-6 Kotlin与HTML
│ ├── 1 Kotlinjs的入门
│ │ └── 01_kotlinjs的入门.mp4
│ ├── 2 案例_轮播图
│ │ └── 02_轮播图.mp4
│ ├── 3 案例_弹出广告
│ │ └── 03_弹出广告.mp4
│ ├── 4 案例_隔行换色
│ │ └── 04_隔行换色.mp4
│ ├── 5 案例_全选全不选
│ │ └── 05_全选全不选.mp4
│ ├── 6 案例_时钟
│ │ ├── 06_页面初始化.mp4
│ │ ├── 07_绘制线条.mp4
│ │ ├── 08_圆的绘制.mp4
│ │ ├── 09_填充.mp4
│ │ ├── 10_绘制外边框.mp4
│ │ ├── 11_绘制60个小点.mp4
│ │ ├── 12_绘制12个文本.mp4
│ │ ├── 13_绘制时针.mp4
│ │ ├── 14_绘制分针和秒针.mp4
│ │ ├── 15_绘制当前时间.mp4
│ │ └── 16_优化.mp4
│ ├── 7 kotlin入门
│ │ └── 17_kotlinx入门.mp4
│ └── 8 案例_主页
│ └── 18_主页页面.mp4
├── 5阶段 区@块链后端基础
│ ├── 5-1 SpringBoot基础
│ │ ├── 1 MVC设计模式
│ │ │ ├── 01_软件架构解释.mp4
│ │ │ ├── 02_MVC模式介绍.mp4
│ │ │ └── 03_MVC模式具体实现(三层设计).mp4
│ │ ├── 2 基础搭建
│ │ │ ├── 04_web常用框架介绍.mp4
│ │ │ ├── 05_SpringBoot环境搭建.mp4
│ │ │ ├── 06_服务器软件介绍.mp4
│ │ │ └── 07_tomcat 演示.mp4
│ │ ├── 3 Controller详解
│ │ │ ├── 08_第一个controller.mp4
│ │ │ ├── 09_第一个Controller(细节处理).mp4
│ │ │ ├── 10_postman 介绍.mp4
│ │ │ ├── 11_答疑 - 包的问题.mp4
│ │ │ ├── 12_参数处理 - 接收简单参数.mp4
│ │ │ ├── 13_参数处理 - 接收对象数据.mp4
│ │ │ ├── 14_controller crud (添加学生).mp4
│ │ │ ├── 15_controller crud (添加学生 二).mp4
│ │ │ ├── 16_controller crud(删除学生).mp4
│ │ │ ├── 17_controller crud(修改学生).mp4
│ │ │ └── 18_controller_crud(查询学生).mp4
│ │ ├── 4 部署应用
│ │ │ ├── 19_打jar包.mp4
│ │ │ └── 20_部署云服务器.mp4
│ │ └── 5 自定义toobar
│ │ └── 21_idea自定义toolbar.mp4
│ ├── 5-10 H2数据库
│ │ ├── 1 事务详解
│ │ │ ├── 01_事务 介绍.mp4
│ │ │ ├── 02_事务 入门(命令版本 一).mp4
│ │ │ ├── 03_事务 入门(命令版本二).mp4
│ │ │ ├── 04_事务 入门(代码版本).mp4
│ │ │ ├── 05_事务 特性.mp4
│ │ │ ├── 06_事务 并发执行的问题.mp4
│ │ │ ├── 07_事务 隔离级别(读未提交).mp4
│ │ │ ├── 08_事务 隔离级别(读已提交).mp4
│ │ │ ├── 09_事务 隔离级别(可重复读).mp4
│ │ │ ├── 10_事务 隔离级别(序列化).mp4
│ │ │ └── 11_事务 写的问题(丢失更新).mp4
│ │ ├── 2 事务案例
│ │ │ ├── 12_事务 - 转账业务(三层结构 一).mp4
│ │ │ ├── 13_事务 -转账业务(三层结构 二).mp4
│ │ │ ├── 14_事务 - 转账业务(事务位置).mp4
│ │ │ ├── 15_事务 - 转账业务(使用事务 一).mp4
│ │ │ ├── 16_事务 - 转账业务(使用事务 二).mp4
│ │ │ ├── 17_事务 - 转账业务(ThreadLocal).mp4
│ │ │ └── 18_事务 - ThreadLocal解释.mp4
│ │ ├── 3 H2数据库
│ │ │ ├── 19_H2数据库 介绍.mp4
│ │ │ ├── 20_H2数据库 运行模式介绍.mp4
│ │ │ ├── 21_H2数据 java操作(内嵌模式).mp4
│ │ │ └── 22_H2数据库 java操作(server模式&内存).mp4
│ │ ├── 4 基础增强_反射
│ │ │ ├── 23_反射 - 介绍.mp4
│ │ │ ├── 24_反射 - 字段操作.mp4
│ │ │ └── 25_反射 - 方法操作.mp4
│ │ └── 5 基础增强_代理
│ │ ├── 26_代理 - 介绍.mp4
│ │ ├── 27_代理 - 静态代理.mp4
│ │ ├── 28_代理 - 动态代理(JDK方式).mp4
│ │ └── 29_代理 - 动态代理(cglib方式).mp4
│ ├── 5-11 Spring
│ │ ├── 1 IOC简介
│ │ │ ├── 01_Spring 介绍.mp4
│ │ │ ├── 02_IOC演变(一).mp4
│ │ │ ├── 03_IOC演变(二).mp4
│ │ │ └── 04_IOC演变(三).mp4
│ │ ├── 2 Spring入门
│ │ │ ├── 05_Spring 入门(一).mp4
│ │ │ ├── 06_Spring 入门(二).mp4
│ │ │ ├── 07_Spring 入门详解(xml解释).mp4
│ │ │ └── 08_Spring 入门详解(代码解释).mp4
│ │ ├── 3 IOC案例
│ │ │ ├── 09_IOC xml版本.mp4
│ │ │ ├── 10_IOC 注解版本(一).mp4
│ │ │ └── 11_IOC 注解版本(二).mp4
│ │ ├── 4 DI详解
│ │ │ ├── 12_DI 介绍.mp4
│ │ │ ├── 13_DI 注入方式(有参构造).mp4
│ │ │ ├── 14_DI 注入方式(set方法).mp4
│ │ │ ├── 15_DI 注入数据(集合类型).mp4
│ │ │ ├── 16_DI 注入数据(对象类型).mp4
│ │ │ └── 17_DI 注解方式.mp4
│ │ └── 5 AOP详解
│ │ ├── 18_AOP 介绍.mp4
│ │ ├── 19_AOP 底层原理.mp4
│ │ ├── 20_AOP 动态代理(JDK方式).mp4
│ │ ├── 21_AOP 动态代理(cglib方式).mp4
│ │ ├── 22_AOP术语.mp4
│ │ ├── 23_AOP 入门.mp4
│ │ └── 24_AOP增强.mp4
│ ├── 5-12 JPA与DpringDataJPA
│ │ ├── 1 JPA详解
│ │ │ ├── 01_JPA 介绍.mp4
│ │ │ ├── 02_JPA ORM思想.mp4
│ │ │ ├── 03_JPA 入门(实体类).mp4
│ │ │ ├── 04_JPA 入门(配置).mp4
│ │ │ ├── 05_JPA 入门(测试).mp4
│ │ │ ├── 06_JPA 入门详解(实体类).mp4
│ │ │ ├── 07_JPA 入门详解(配置).mp4
│ │ │ ├── 08_JPA 入门详解(代码).mp4
│ │ │ ├── 09_JPA CRUD.mp4
│ │ │ ├── 10_JPA 对象时态.mp4
│ │ │ ├── 11_JPA 多表关系(搭建环境).mp4
│ │ │ ├── 12_JPA 多表关系(多对一 int类型).mp4
│ │ │ ├── 13_JPA 多表关系(多对一 对象类型).mp4
│ │ │ ├── 14_JPA 多表关系(一对多).mp4
│ │ │ └── 15_JPA 多表关系(对象导航查询).mp4
│ │ └── 2 SpringDataJPA详解
│ │ ├── 16_SpringDataJPA - 介绍.mp4
│ │ ├── 17_SpringDataJPA - 入门(一).mp4
│ │ ├── 18_SpringDataJPA 入门(二).mp4
│ │ ├── 19_SpringDataJPA 通用接口介绍.mp4
│ │ ├── 20_SpringDataJPA 自定义方法名.mp4
│ │ ├── 21_SpringDataJpa crud.mp4
│ │ └── 22_SpringDataJPA 分页查询.mp4
│ ├── 5-13 彩票项目-墨刀使用
│ │ ├── 1 博彩项目介绍
│ │ │ ├── 01-项目的介绍.mp4
│ │ │ └── 02-友情提醒.mp4
│ │ ├── 2 墨刀软件基本操作
│ │ │ ├── 03-软件开发流程.mp4
│ │ │ ├── 04-产品设计介绍.mp4
│ │ │ ├── 06-墨刀软件的基本使用.mp4
│ │ │ └── 07-分享软件.mp4
│ │ └── 3 使用墨刀设计博彩项目
│ │ ├── 08-新建项目.mp4
│ │ ├── 09-首页-创建轮播母版.mp4
│ │ ├── 10-首页-博彩讨论区.mp4
│ │ ├── 11-首页-彩票条目.mp4
│ │ ├── 12-首页-封装菜单母版.mp4
│ │ ├── 13-首页-母版链接跳转.mp4
│ │ ├── 14-首页-选号页面搭建.mp4
│ │ ├── 15-我的-需求.mp4
│ │ ├── 16-我的-设计.mp4
│ │ ├── 17-头像上传.mp4
│ │ ├── 18-注册页面.mp4
│ │ └── 19-小结.mp4
│ ├── 5-14 彩票项目-前台页面
│ │ ├── 1 bootstrap编写博彩首页
│ │ │ ├── 20-使用Hbuilder.mp4
│ │ │ ├── 21-回顾bootstrap.mp4
│ │ │ ├── 22-补充bootstrap.mp4
│ │ │ ├── 23-拷贝轮播图代码.mp4
│ │ │ ├── 24-封装彩票条目.mp4
│ │ │ └── 25-封装彩票菜单栏.mp4
│ │ ├── 2 bootstrap编写博彩详情页面
│ │ │ ├── 01-今日课程介绍.mp4
│ │ │ ├── 02-彩票详情界面.mp4
│ │ │ ├── 03-解决页面显示不完整的bug.mp4
│ │ │ └── 04-页面跳转.mp4
│ │ ├── 3 bootstrap实现登录和注册
│ │ │ ├── 05-完成注册页面.mp4
│ │ │ └── 06-完成登录页面.mp4
│ │ ├── 4 css,js,jquery实现选号页面逻辑
│ │ │ ├── 07-完成选号页面-布局.mp4
│ │ │ ├── 08-球的选中样式.mp4
│ │ │ ├── 09-红球选中的逻辑.mp4
│ │ │ ├── 10-蓝球被选中的逻辑.mp4
│ │ │ ├── 11-随机选中红球.mp4
│ │ │ └── 12-随机选中蓝球.mp4
│ │ ├── 5 bootstrap实现购物车页面
│ │ │ ├── 13-购物车页面.mp4
│ │ │ ├── 14-订单详情页面.mp4
│ │ │ └── 15-订单列表页面.mp4
│ │ └── 6 快速实现后台管理系统
│ │ └── 16-使用轮子.mp4
│ ├── 5-15 彩票项目-后台数据展示
│ │ └── 1 thymeleaf模板引擎学习
│ │ ├── 01-课程介绍.mp4
│ │ ├── 02-thymeleaf介绍.mp4
│ │ ├── 03-搭建thymeleaf演示工程.mp4
│ │ ├── 04-入门案例.mp4
│ │ ├── 05-thymeleaf特征.mp4
│ │ ├── 06-url标签.mp4
│ │ ├── 07-代码段标签.mp4
│ │ ├── 08-条件表达式.mp4
│ │ ├── 09-循环处理.mp4
│ │ └── 10-js拼接数据注意问题.mp4
1.算法是程序的灵魂,优秀的程序在对海量数据处理时,依然保持高速计算,就需要高效的数据结构和算法支撑。
2.网上数据结构和算法的课程不少,但存在两个问题:
1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了
2)说是讲数据结构和算法,但大多是挂羊头卖狗肉,算法讲的很少。 本课程针对上述问题,有针对性的进行了升级
3)授课方式采用图解+算法游戏的方式,让课程生动有趣好理解
4)系统全面的讲解了数据结构和算法, 除常用数据结构和算法外,还包括程序员常用10大算法:二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、马踏棋盘算法。可以解决面试遇到的最短路径、最小生成树、最小连通图、动态规划等问题及衍生出的面试题,让你秒杀其他面试小伙伴. j0 w) K' |: d5 F4 e0 I$ J
3.如果你不想永远都是代码工人,就需要花时间来研究下数据结构和算法。
教程内容:
本教程是使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、基数排序(桶排序)、堆排序、排序速度分析、二分查找、插值查找、斐波那契查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、AVL树、线索二叉树、赫夫曼树、赫夫曼编码、多路查找树(B树B+树和B*树)、图、图的DFS算法和BFS、程序员常用10大算法、二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法马踏棋盘算法。
学习目标:
通过学习,学员能掌握主流数据结构和算法的实现机制,开阔编程思路,提高优化程序的能力。
〖课程目录〗:
001.尚硅谷_老韩图解Java数据结构和算法_几个经典的算法面试题(1)
002.尚硅谷_老韩图解Java数据结构和算法_几个经典的算法面试题(2)
003.尚硅谷_老韩图解Java数据结构和算法_内容介绍和授课方式
004.尚硅谷_老韩图解Java数据结构和算法_数据结构和算法的关系
005.尚硅谷_老韩图解Java数据结构和算法_编程中实际遇到的几个问题
006.尚硅谷_老韩图解Java数据结构和算法_线性结构和非线性结构
007.尚硅谷_老韩图解Java数据结构和算法_稀疏数组的应用场景
008.尚硅谷_老韩图解Java数据结构和算法_稀疏数组转换的思路分析
009.尚硅谷_老韩图解Java数据结构和算法_稀疏数组的代码实现- {/ {7 P' @* m3 o0 X9 ?
010.尚硅谷_老韩图解Java数据结构和算法_队列的应用场景和介绍0 P) _1 p) J( Q
011.尚硅谷_老韩图解Java数据结构和算法_数组模拟队列的思路分析
012.尚硅谷_老韩图解Java数据结构和算法_数组模拟队列代码实现(1)
013.尚硅谷_老韩图解Java数据结构和算法_数组模拟队列代码实现(2)
014.尚硅谷_老韩图解Java数据结构和算法_数组模拟环形队列思路分析图. f5 Y0 T- v& i
015.尚硅谷_老韩图解Java数据结构和算法_数组模拟环形队列实现: U. m9 [7 I9 ~! h/ z8 @# g
016.尚硅谷_老韩图解Java数据结构和算法_单链表介绍和内存布局
017.尚硅谷_老韩图解Java数据结构和算法_单链表创建和遍历的分析实现6 ]9 S# I* T4 k; \- e
018.尚硅谷_老韩图解Java数据结构和算法_单链表按顺序插入节点" N! q8 ]9 n5 P" D6 G. C
019.尚硅谷_老韩图解Java数据结构和算法_单链表节点的修改
020.尚硅谷_老韩图解Java数据结构和算法_单链表节点的删除和小结
021.尚硅谷_老韩图解Java数据结构和算法_单链表新浪面试题
022.尚硅谷_老韩图解Java数据结构和算法_单链表腾讯面试题
023.尚硅谷_老韩图解Java数据结构和算法_单链表百度面试题8 b4 T" u( I5 l" U' b
024.尚硅谷_老韩图解Java数据结构和算法_双向链表增删改查分析图解0 W2 R& @% g* a D
025.尚硅谷_老韩图解Java数据结构和算法_双向链表增删改查代码实现
026.尚硅谷_老韩图解Java数据结构和算法_双向链表功能测试和小结
027.尚硅谷_老韩图解Java数据结构和算法_环形链表介绍和约瑟夫问题
028.尚硅谷_老韩图解Java数据结构和算法_约瑟夫问题分析图解和实现(1); e4 e$ s3 V! J$ z
029.尚硅谷_老韩图解Java数据结构和算法_约瑟夫问题分析图解和实现(2)
030.尚硅谷_老韩图解Java数据结构和算法_栈的应用场景和介绍 e: Z5 I O( x$ o9 y, x
031.尚硅谷_老韩图解Java数据结构和算法_栈的思路分析和代码实现
032.尚硅谷_老韩图解Java数据结构和算法_栈的功能测试和小结. R# g% t' i1 u$ n* [
033.尚硅谷_老韩图解Java数据结构和算法_栈实现综合计算器-思路分析(1)
034.尚硅谷_老韩图解Java数据结构和算法_栈实现综合计算器-代码实现(2)
035.尚硅谷_老韩图解Java数据结构和算法_栈实现综合计算器-代码实现(3); S$ n* G) l- g h
036.尚硅谷_老韩图解Java数据结构和算法_前缀 中缀 后缀表达式规则
037.尚硅谷_老韩图解Java数据结构和算法_逆波兰计算器分析和实现(1)
038.尚硅谷_老韩图解Java数据结构和算法_逆波兰计算器分析和实现(2)+ ^9 h! {1 g" S; v: |
039.尚硅谷_老韩图解Java数据结构和算法_中缀转后缀表达式思路分析2 e$ V% v6 v3 Z& a; g. D7 e
040.尚硅谷_老韩图解Java数据结构和算法_中缀转后缀表达式代码实现(1)% y7 g$ X" C6 O& o6 }
041.尚硅谷_老韩图解Java数据结构和算法_中缀转后缀表达式代码实现(2)
042.尚硅谷_老韩图解Java数据结构和算法_完整版逆波兰计算器和小结* ^, J5 v3 ~& ]7 ^, K. Z4 F
043.尚硅谷_老韩图解Java数据结构和算法_递归应用场景和调用机制
044.尚硅谷_老韩图解Java数据结构和算法_递归能解决的问题和规则
045.尚硅谷_老韩图解Java数据结构和算法_迷宫回溯问题分析和实现(1)" q6 Z, b( K' y; ?5 A/ z$ E
046.尚硅谷_老韩图解Java数据结构和算法_迷宫回溯问题分析和实现(2)
047.尚硅谷_老韩图解Java数据结构和算法_八皇后问题分析和实现(1)
048.尚硅谷_老韩图解Java数据结构和算法_八皇后问题分析和实现(2). K& H0 Y, e; F
049.尚硅谷_老韩图解Java数据结构和算法_八皇后问题分析和实现(3)- ^7 X4 X% n2 u, [0 G, o
050.尚硅谷_老韩图解Java数据结构和算法_排序算法介绍和分类$ o' X, N, R( ~
051.尚硅谷_老韩图解Java数据结构和算法_时间频度介绍和特点
052.尚硅谷_老韩图解Java数据结构和算法_时间复杂度计算和举例说明# e" k3 V0 I) |+ U7 G# n
053.尚硅谷_老韩图解Java数据结构和算法_平均和最坏时间复杂度介绍* g5 W9 x& n# M+ A5 }
054.尚硅谷_老韩图解Java数据结构和算法_冒泡排序算法思路图解
055.尚硅谷_老韩图解Java数据结构和算法_冒泡排序算法代码实现, y3 l! ?& j6 U. h3 u3 r6 {3 @+ J
056.尚硅谷_老韩图解Java数据结构和算法_冒泡排序算法优化和总结% n# X" u' l( F. ]
057.尚硅谷_老韩图解Java数据结构和算法_选择排序算法思路图解$ i# Q) j }7 d$ n2 Q+ c- ~4 t
058.尚硅谷_老韩图解Java数据结构和算法_选择排序算法代码实现( v8 q3 @, ^; H l% Y9 ?+ o
059.尚硅谷_老韩图解Java数据结构和算法_选择排序算法速度测试: ^) T9 K: u; V2 g* w. W8 C
060.尚硅谷_老韩图解Java数据结构和算法_插入排序算法思路图解+ S& ?# i& D: Y @
061.尚硅谷_老韩图解Java数据结构和算法_插入排序算法代码实现6 i. W6 ^9 J0 I
062.尚硅谷_老韩图解Java数据结构和算法_插入排序算法速度测试 `# j* {+ n; T& Q. P4 K/ b+ t* t8 S
063.尚硅谷_老韩图解Java数据结构和算法_希尔排序算法思路图解7 H) a! z% l. c& E$ A
064.尚硅谷_老韩图解Java数据结构和算法_希尔排序[交换式]算法实现
065.尚硅谷_老韩图解Java数据结构和算法_希尔排序[移位式]算法实现2 H4 H& A- z3 _# g3 q, [2 l: `( t6 J
066.尚硅谷_老韩图解Java数据结构和算法_快速排序算法思路图解; V* a _9 S: m3 S/ O+ R
067.尚硅谷_老韩图解Java数据结构和算法_快速排序算法代码实现
068.尚硅谷_老韩图解Java数据结构和算法_快速排序算法速度测试
069.尚硅谷_老韩图解Java数据结构和算法_归并排序算法思路图解, r; [- Z' z, d
070.尚硅谷_老韩图解Java数据结构和算法_归并排序算法代码实现" F4 A1 x: \! H5 A! K
071.尚硅谷_老韩图解Java数据结构和算法_归并排序算法速度测试) ^! a: m" k8 K+ ]2 o
072.尚硅谷_老韩图解Java数据结构和算法_基数排序算法思路图解5 U8 T# t1 j' [% V( G2 j
073.尚硅谷_老韩图解Java数据结构和算法_基数排序算法代码实现(1)5 r$ r& ?1 C6 u: U. D4 Q7 Y" G
074.尚硅谷_老韩图解Java数据结构和算法_基数排序算法代码实现(2)
075.尚硅谷_老韩图解Java数据结构和算法_基数排序算法注意事项
076.尚硅谷_老韩图解Java数据结构和算法_排序算法时间复杂度比较
077.尚硅谷_老韩图解Java数据结构和算法_线性查找分析和实现6 n6 P; h. J3 S: B' z6 P
078.尚硅谷_老韩图解Java数据结构和算法_二分查找算法思路图解
079.尚硅谷_老韩图解Java数据结构和算法_二分查找算法代码实现; C' J" [6 G. J$ m9 o8 h
080.尚硅谷_老韩图解Java数据结构和算法_二分查找算法功能完善7 G: X( o, R) b( \' `& {* W# e# y
081.尚硅谷_老韩图解Java数据结构和算法_插值查找算法工作原理
082.尚硅谷_老韩图解Java数据结构和算法_插值查找算法代码实现
083.尚硅谷_老韩图解Java数据结构和算法_斐波那契查找算法原理9 n% K" b2 B8 I
084.尚硅谷_老韩图解Java数据结构和算法_斐波那契查找代码实现
085.尚硅谷_老韩图解Java数据结构和算法_斐波那契查找算法小结: @1 t% t3 d/ N a
086.尚硅谷_老韩图解Java数据结构和算法_哈希表的介绍和内存布局
087.尚硅谷_老韩图解Java数据结构和算法_哈希表实现思路图解: K. W, X0 b" E
088.尚硅谷_老韩图解Java数据结构和算法_哈希表代码实现(1)
089.尚硅谷_老韩图解Java数据结构和算法_哈希表代码实现(2)$ v! \+ ]; N9 r+ m0 x4 j: c
090.尚硅谷_老韩图解Java数据结构和算法_数组 链表 树存储方式分析4 s- ]: x0 \/ k+ B+ ^5 D9 Y
091.尚硅谷_老韩图解Java数据结构和算法_二叉树的概念和常用术语- T- W+ `2 O8 @: O- }/ b
092.尚硅谷_老韩图解Java数据结构和算法_前序中序后序遍历二叉树图解7 S( B9 M1 [7 D2 s
093.尚硅谷_老韩图解Java数据结构和算法_前序中序后序遍历代码实现(1)% s+ J" o4 H# G8 Y- O: f
094.尚硅谷_老韩图解Java数据结构和算法_前序中序后序遍历代码实现(2)7 W/ S2 e+ m2 _7 B4 r5 G7 U
095.尚硅谷_老韩图解Java数据结构和算法_前序中序后序查找思路图解
096.尚硅谷_老韩图解Java数据结构和算法_前序中序后序查找代码实现(1)6 I( j* T. p! e+ u; X' l/ Q; X; z
097.尚硅谷_老韩图解Java数据结构和算法_前序中序后序查找代码实现(2)5 p! H/ H) S' c
098.尚硅谷_老韩图解Java数据结构和算法_二叉树删除结点思路图解
099.尚硅谷_老韩图解Java数据结构和算法_二叉树删除结点代码实现
100.尚硅谷_老韩图解Java数据结构和算法_顺序存储二叉树思路图解
101.尚硅谷_老韩图解Java数据结构和算法_顺序存储二叉树代码实现
102.尚硅谷_老韩图解Java数据结构和算法_线索化二叉树的介绍
103.尚硅谷_老韩图解Java数据结构和算法_线索化二叉树思路图解6 C' K5 j( h4 k" Z* X- Z
104.尚硅谷_老韩图解Java数据结构和算法_线索化二叉树代码实现1
105.尚硅谷_老韩图解Java数据结构和算法_线索化二叉树代码实现2. J4 E" k D2 |5 w, ]
106.尚硅谷_老韩图解Java数据结构和算法_遍历线索化二叉树实现7 `3 e5 w, [& y( s5 w& y
107.尚硅谷_老韩图解Java数据结构和算法_大顶堆和小顶堆图解说明
108.尚硅谷_老韩图解Java数据结构和算法_堆排序的思路图解
109.尚硅谷_老韩图解Java数据结构和算法_堆排序的代码实现1& ~9 c+ M5 |1 o# r
110.尚硅谷_老韩图解Java数据结构和算法_堆排序的代码实现2" N& R# `+ p* K. Z& e0 _/ v( g
111.尚硅谷_老韩图解Java数据结构和算法_堆排序的速度测试和小结
112.尚硅谷_老韩图解Java数据结构和算法_赫夫曼树的基本介绍 ?( ]6 X6 C" j
113.尚硅谷_老韩图解Java数据结构和算法_赫夫曼树创建步骤图解( z. P+ J# x; X
114.尚硅谷_老韩图解Java数据结构和算法_赫夫曼树创建代码实现
115.尚硅谷_老韩图解Java数据结构和算法_变长编码的举例说明3 L7 p: @+ O0 y7 P6 [) F4 W' ~
116.尚硅谷_老韩图解Java数据结构和算法_赫夫曼编码的原理图解
117.尚硅谷_老韩图解Java数据结构和算法_数据压缩-创建赫夫曼树思路
118.尚硅谷_老韩图解Java数据结构和算法_数据压缩-创建赫夫曼树实现
119.尚硅谷_老韩图解Java数据结构和算法_数据压缩-生成赫夫曼编码表& f3 F7 }, f/ A/ k+ `- R
120.尚硅谷_老韩图解Java数据结构和算法_数据压缩-赫夫曼编码字节数组 `2 x! ~$ p& }5 d5 N% [
121.尚硅谷_老韩图解Java数据结构和算法_数据压缩-赫夫曼字节数组封装- d- i1 t) p) m3 N n/ y% ]3 U
122.尚硅谷_老韩图解Java数据结构和算法_数据解压-字节转二进制字符串5 b+ N- Y7 i' z4 Q
123.尚硅谷_老韩图解Java数据结构和算法_数据解压-赫夫曼解码
124.尚硅谷_老韩图解Java数据结构和算法_使用赫夫曼编码压缩文件: w+ E4 ]' d9 B% H: P5 {
125.尚硅谷_老韩图解Java数据结构和算法_使用赫夫曼编码解压文件
126.尚硅谷_老韩图解Java数据结构和算法_赫夫曼编码注意事项
127.尚硅谷_老韩图解Java数据结构和算法_二叉排序树(BST)的介绍
128.尚硅谷_老韩图解Java数据结构和算法_二叉排序树(BST)创建和遍历
129.尚硅谷_老韩图解Java数据结构和算法_二叉排序树删除结点思路图解
130.尚硅谷_老韩图解Java数据结构和算法_二叉排序树删除叶子结点(1)7 `$ X- q* z" |' l
131.尚硅谷_老韩图解Java数据结构和算法_二叉排序树删除叶子结点(2)
132.尚硅谷_老韩图解Java数据结构和算法_BST删除有一颗子树的结点
133.尚硅谷_老韩图解Java数据结构和算法_BST删除有二颗子树的结点
134.尚硅谷_老韩图解Java数据结构和算法_BST删除结点的注意事项/ p6 `6 B# p# i+ M0 X
135.尚硅谷_老韩图解Java数据结构和算法_平衡二叉树(AVL树)介绍/ P& T( V# r& R! b. b: F6 a$ t
136.尚硅谷_老韩图解Java数据结构和算法_AVL树左旋转思路图解
137.尚硅谷_老韩图解Java数据结构和算法_AVL树高度求解$ w F1 h9 \6 g5 H0 @. D& Q2 E! P! ~
138.尚硅谷_老韩图解Java数据结构和算法_AVL树左旋转代码实现
139.尚硅谷_老韩图解Java数据结构和算法_AVL树右旋转图解和实现# M# y. I% A2 }
140.尚硅谷_老韩图解Java数据结构和算法_AVL树双旋转图解和实现* d! K+ g# e' J+ d
141.尚硅谷_老韩图解Java数据结构和算法_平衡二叉树(AVL树)小结
142.尚硅谷_老韩图解Java数据结构和算法_多叉树原理图解
143.尚硅谷_老韩图解Java数据结构和算法_2-3树原理图解 z/ J4 ~, \8 L
144.尚硅谷_老韩图解Java数据结构和算法_B树和B加树原理图解3 o* ~' B- W* m6 b+ O% C8 x
145.尚硅谷_老韩图解Java数据结构和算法_B星树和多路查找树小结( C, w5 O; j. l+ W, [: d" r' i
146.尚硅谷_老韩图解Java数据结构和算法_图的基本介绍和存储形式
147.尚硅谷_老韩图解Java数据结构和算法_图的创建图解和代码实现
148.尚硅谷_老韩图解Java数据结构和算法_图的深度优先(DFS)算法图解
149.尚硅谷_老韩图解Java数据结构和算法_图的深度优先(DFS)代码实现& T" \( N8 F; C/ Y: |9 R
150.尚硅谷_老韩图解Java数据结构和算法_图的广度优先(BFS)算法图解3 `% j% H* c' h; s
151.尚硅谷_老韩图解Java数据结构和算法_图的广度优先(BFS)代码实现
152.尚硅谷_老韩图解Java数据结构和算法_DFS和BFS比较及图小结3 P" H1 \; E4 {' y
153.尚硅谷_老韩图解Java数据结构和算法_二分查找非递归算法分析实现
154.尚硅谷_老韩图解Java数据结构和算法_分治算法的设计模式
155.尚硅谷_老韩图解Java数据结构和算法_分治算法解决汉诺塔问题
156.尚硅谷_老韩图解Java数据结构和算法_动态规划算法基本介绍# |" `5 n5 y5 {( u; ?3 P' y
157.尚硅谷_老韩图解Java数据结构和算法_动态规划算法解决背包问题1/ r0 {- B- N8 R2 g% s' o& g
158.尚硅谷_老韩图解Java数据结构和算法_动态规划算法解决背包问题2
159.尚硅谷_老韩图解Java数据结构和算法_动态规划算法解决背包问题3
160.尚硅谷_老韩图解Java数据结构和算法_暴力匹配算法解决字串匹配问题5 R' [8 t) C5 m# \, v) a
161.尚硅谷_老韩图解Java数据结构和算法_KMP算法解决字串匹配思路图解8 d( C( M Z0 I+ z
162.尚硅谷_老韩图解Java数据结构和算法_KMP算法解决字串匹配代码实现
163.尚硅谷_老韩图解Java数据结构和算法_动态规划算法和KMP算法小结, w! i) e4 a. h
164.尚硅谷_老韩图解Java数据结构和算法_贪心算法的基本介绍
165.尚硅谷_老韩图解Java数据结构和算法_贪心算法解决集合覆盖思路图解
166.尚硅谷_老韩图解Java数据结构和算法_贪心算法解决集合覆盖代码实现8 m' T8 @" N; g4 s, \2 u% @
167.尚硅谷_老韩图解Java数据结构和算法_贪心算法解决集合覆盖注意事项
168.尚硅谷_老韩图解Java数据结构和算法_普利姆算法(Prim)和MST介绍
169.尚硅谷_老韩图解Java数据结构和算法_Prim算法解决修路问题思路图解" j/ L+ h( x$ p" D8 q/ u
170.尚硅谷_老韩图解Java数据结构和算法_Prim算法解决修路问题生成图3 `% t! }# g6 ~! j) F" p6 ^, S: D
171.尚硅谷_老韩图解Java数据结构和算法_Prim算法解决修路问题代码实现
172.尚硅谷_老韩图解Java数据结构和算法_克鲁斯卡尔((Kruskal)算法图解# A% S- h2 \/ @/ Q5 y
173.尚硅谷_老韩图解Java数据结构和算法_Kruskal算法解决公交问题(1)9 X# T& }+ M0 b: |
174.尚硅谷_老韩图解Java数据结构和算法_Kruskal算法解决公交问题(2)
175.尚硅谷_老韩图解Java数据结构和算法_Kruskal算法解决公交问题(3)
176.尚硅谷_老韩图解Java数据结构和算法_Kruskal算法解决公交问题(4)5 B# `) a7 F9 N
177.尚硅谷_老韩图解Java数据结构和算法_Kruskal算法解决公交问题小结. @; N+ v. w" T+ Z; B
178.尚硅谷_老韩图解Java数据结构和算法_迪杰斯特拉(Dijkstra)算法基本介绍, q, [' ?5 q J* r. S9 ~5 \
179.尚硅谷_老韩图解Java数据结构和算法_Dijkstra算法思路图解
180.尚硅谷_老韩图解Java数据结构和算法_Dijkstra算法解决最短路径问题(1)2 f A* H }/ S. R2 x0 N
181.尚硅谷_老韩图解Java数据结构和算法_Dijkstra算法解决最短路径问题(2)
182.尚硅谷_老韩图解Java数据结构和算法_Dijkstra算法解决最短路径问题(3). o5 R4 {) Y% s4 K
183.尚硅谷_老韩图解Java数据结构和算法_Dijkstra算法解决最短路径问题(4)
184.尚硅谷_老韩图解Java数据结构和算法_Dijkstra算法解决最短路径问题(5)9 f& f" S, u7 G8 |
185.尚硅谷_老韩图解Java数据结构和算法_弗洛伊德(Floyd)算法基本介绍) x; j8 v' Y, v/ [
186.尚硅谷_老韩图解Java数据结构和算法_弗洛伊德(Floyd)算法思路图解% k- ]) }7 ]8 ^9 M6 y) i6 J
187.尚硅谷_老韩图解Java数据结构和算法_Floyd算法解决最短路径问题(1)) q. ?% a3 V/ r6 P8 N
188.尚硅谷_老韩图解Java数据结构和算法_Floyd算法解决最短路径问题(2)
189.尚硅谷_老韩图解Java数据结构和算法_骑士周游问题和游戏说明
190.尚硅谷_老韩图解Java数据结构和算法_骑士周游问题思路图解
191.尚硅谷_老韩图解Java数据结构和算法_骑士周游回溯算法代码实现(1)+ A e# [3 P: C. N% R
192.尚硅谷_老韩图解Java数据结构和算法_骑士周游回溯算法代码实现(2)( e8 Q6 x6 f* Z
193.尚硅谷_老韩图解Java数据结构和算法_骑士周游回溯算法代码实现(3) k& |# n( Z& W1 b5 C e1 y/ V
194.尚硅谷_老韩图解Java数据结构和算法_骑士周游回溯算法用贪心算法优化# y2 Z" B/ \$ L; M$ @- K
195.尚硅谷_老韩图解Java数据结构和算法_结束语(卖油翁和老黄牛)
spring boot 源码解析--分为3个部分
1.SpringApplication实例化及run方法解析
2.Spring boot 自动装配
3.Spring boot actuator 解析
其中涉及了类加载机制,spring cache,spring mvc,spring core等内容,全方面的为您解惑:
1. 使用过spring boot,spring cloud 的人都会在application.properties中配置如spring.datasource.url 的配置,但是其是如何生效的,很多人就不知道了
2. 使用spring-boot-starter-actuator的都会配置如下内容endpoints.shutdown.enabled=true 来实现优雅关闭,但原因为何,很多人就不知道了
3. 加入spring-boot-starter-web后,不需任何操作,1个web程序就配置好了,没有了一堆配置,其背后的密码,很多人都不知道
课程目录:
第1节Spring Boot介绍,源码阅读环境搭建,插件安装 [免费观看] 00:13:12分钟 |
第2节Spring源码阅读环境搭建 [免费观看] 00:19:58分钟 |
第3节SpringApplication初始化 [免费观看] 00:20:47分钟 |
第4节SpringApplication run方法解析(1)--前3步00:01:29:14:00分钟 | * u& K# w' j, `# V3 ]
第5节SpringApplication run方法解析(2)--第4步(上)00:01:53:39:00分钟 | 7 j4 O& M3 ?& t# W; J+ ~! ^0 |; D8 o
第6节SpringApplication run方法解析(2)--第4步(中)00:01:50:38:00分钟 | 2 F! e& c4 n7 d+ ?7 O/ }6 E
第7节SpringApplication run方法解析(2)--第4步(下)00:01:36:41:00分钟 | # t( }, }& v- [9 c$ X
第8节SpringApplication run方法解析(3)--第5步(打印banner)00:01:15:10:00分钟 | 6 W& l$ J f* @. R W: V5 @
第9节SpringApplication run方法解析(4)--第6步(创建ApplicationContext)00:01:30:10:00分钟 |
第10节SpringApplication run方法解析(5)--第7步(创建FailureAnalyzers)00:01:35:47:00分钟 |
第11节SpringApplication run方法解析(6)--第8步(prepareContext)上00:02:04:28:00分钟 | ! T0 m1 i2 J' F
第12节SpringApplication run方法解析(6)--第8步(prepareContext)下00:01:46:08:00分钟 |
第13节SpringApplication run方法解析(7)--第9步-上00:01:55:39:00分钟 |
第14节SpringApplication run方法解析(7)--第9步-中00:01:54:45:00分钟 | $ [9 _( p. t$ s, {
第15节SpringApplication run方法解析(7)--第9步-下00:01:15:59:00分钟 | : a3 O1 @+ Z H2 X- H, D) e2 i, {
第16节SpringApplication run方法解析(8)--第10-13步00:01:57:18:00分钟 | 0 n! M0 B- B5 p
第17节ConfigurationClassPostProcessor类加载解析(1)00:02:00:09:00分钟 | + v& \9 d0 a9 K% K4 m9 v- c
第18节ConfigurationClassPostProcessor类加载解析(2)00:01:44:31:00分钟 |
第19节ConfigurationClassPostProcessor类加载解析(3)00:02:22:26:00分钟 |
第20节ConfigurationClassPostProcessor类加载解析(4)00:25:26分钟 | ! I+ v! C, f' @
第21节Tomcat 源码导入00:14:00分钟 | 7 d" Y, `- o* Y3 ]5 { |/ C
第22节Servlet容器的建立(1)--OnWebApplicationCondition00:40:50分钟 | + H D) C1 b' F
第23节Servlet容器的建立(2)--EmbeddedServletContainerAutoConfiguration的自动装配(1)00:01:01:19:00分钟 | ! n. j+ W2 ]+ T/ j
第24节Servlet容器的建立(3)--EmbeddedServletContainerAutoConfiguration的自动装配(2)00:01:08:16:00分钟 |
第25节Servlet容器的建立(4)--Servlet容器的创建(1)00:46:24分钟 | / W/ w7 K6 S0 ^! B
第26节Servlet容器的建立(5)--Servlet容器的创建(2)00:01:57:12:00分钟 | G ?0 W6 e% @8 F+ D
第27节Servlet容器的建立(6)--Servlet容器的创建(3)00:54:56分钟 | ' {, z& H- \/ c! N# m
第28节Servlet容器的建立(7)--Servlet容器的创建(4)00:56:37分钟 | + E: t" K5 X2 d& ]- x) U+ W
第29节Servlet容器的建立(8)--Servlet容器的创建(5)00:01:16:15:00分钟 |
第30节Servlet容器的建立(9)--Tomcat的创建(1)00:01:14:03:00分钟 |
第31节Servlet容器的建立(10)--Tomcat的创建(2)00:01:09:42:00分钟 | % M" J- ^3 j( ]* ]
第32节Servlet容器的建立(11)--Tomcat的创建(3)00:01:01:29:00分钟 | % G. e: p2 x& K' g4 S) I
第33节Servlet容器的建立(12)--Tomcat的创建(4)00:01:09:28:00分钟