Java语言与全栈区块链在线就业班价值16980

  • Java
    11-06 04:17
    一、课程简介 区块链技术是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
    • 873