很多初学编程的人,卡住的地方并不是语法本身,而是“Java 到底是个什么东西”这个最基本的问题。这门课解决的就是这个起步问题:为什么 Java 能火这么多年,为什么说它跨平台,你电脑上的 JDK 装好之后到底发生了什么。如果你正处在“想学编程,但连环境都装不明白”的状态,这门课就是拿来补上这一脚油门的。

缺的是一层“知其然”的地基

市面上不少 Java 入门课默认你已经知道什么是编译器、什么是运行环境,结果新手听完更懵。这门课不一样,它从计算机语言的发展史讲起,告诉你机器语言、汇编语言、高级语言分别解决什么问题,Java 又是在什么背景下诞生的。紧接着讲 Java 的三大版本、跨平台原理、JDK 和 JRE 的区别,这些内容表面看是概念,其实是后续所有代码能跑起来的前提。如果你一直搞不清楚“为什么 Java 能一处编译到处运行”,或者把 JDK 和 JRE 混为一谈,那这块就是你要补的缺口。

课程还专门讲了常用 DOS 命令和开发环境搭建。别小看这部分,很多转岗的人第一次上课就在装环境上挫败感拉满。知道如何用命令行进入目录、执行命令,明白 PATH 配的是什么,你能少走很多弯路。

建议这样看,别从头硬啃

这门课的定位是零基础,完全没写过代码的人可以跟。如果你已经会一点其他语言,比如 Python 或 C,那发展史和 DOS 命令可以快进,重点放在 Java 跨平台原理、JRE 与 JDK 的区分、环境搭建上。这三块是你后续装工具链、理解编译运行流程时最值钱的部分。

建议第一次看的时候,先不急着记笔记,把“Java 跨平台原理”和“环境搭建”这两节反复看两遍。前者帮你建立心智模型,后者直接决定你能不能亲手写出第一个程序。环境搭好后,马上照着敲一个 HelloWorld,确认自己真的能编译能运行,再继续往后走。

学完能做什么,以及资料怎么用

把这一章真正吃透后,你能独立完成这样几件事:在自己的电脑上装好 JDK,配好环境变量,用命令行完成 Java 文件的编译和执行;能向别人解释清楚 Java 为什么跨平台、JRE 和 JDK 到底谁包含谁;也能在看后续课程时,不再被“下载 JDK”这类操作绊住。这个阶段你还写不了业务逻辑,但你已经不是一个“连门都没摸到”的人了。

用资料练习时别贪多。每看完一节课,就做一件对应的小事:比如学完跨平台原理后,用一句话写给自己听;学完环境搭建后,把 JDK 安装目录里的 bin 文件夹打开,找到 javac 和 java 两个文件,确认它们存在。课程目录是按章节组织的,你可以只挑当前需要的那一小段来看,不必按顺序从头播到尾。等你能不借助教程独立

课程目录

1-1 [第01章_初识JAVA] 001-第一阶段介绍 (04:01)
1-2 [第01章_初识JAVA] 002-第01章内容介绍 (01:26)
1-3 [第01章_初识JAVA] 003-计算机语言发展史 (11:36)
1-4 [第01章_初识JAVA] 004-Java发展史 (08:21)
1-5 [第01章_初识JAVA] 005-Java三大版本 (02:57)
1-6 [第01章_初识JAVA] 006-Java的优势以及流行原因 (08:20)
1-7 [第01章_初识JAVA] 007-Java跨平台原理 (11:01)
1-8 [第01章_初识JAVA] 008-常用DOS命令 (14:24)
1-9 [第01章_初识JAVA] 009-JRE与JDK (01:41)
1-10 [第01章_初识JAVA] 010-Java开发环境搭建 (07:54)
1-11 [第01章_初识JAVA] 011-HelloWorld程序编写 (05:58)
1-12 [第01章_初识JAVA] 012-HelloWorld程序分析 (23:12)
1-13 [第01章_初识JAVA] 013-代码注释 (07:36)
1-14 [第01章_初识JAVA] 014-EditPlus使用 (08:55)
1-15 [第01章_初识JAVA] 015-反编译工具 (03:09)
1-16 [第01章_初识JAVA] 016-初识Java_总结 (11:28)
2-1 [第02章_数据类型和运算符] 017-第02章内容介绍 (01:51)
2-2 [第02章_数据类型和运算符] 018-文件存储单位 (11:31)
2-3 [第02章_数据类型和运算符] 019-常见的进制及其转换 (21:00)
2-4 [第02章_数据类型和运算符] 020-计算机中整数的存储 (09:14)
2-5 [第02章_数据类型和运算符] 021-关键字、保留字、标识符 (09:29)
2-6 [第02章_数据类型和运算符] 022-变量 (17:16)
2-7 [第02章_数据类型和运算符] 023-常量 (11:51)
2-8 [第02章_数据类型和运算符] 024-基本数据类型_数值型 (14:15)
2-9 [第02章_数据类型和运算符] 025-基本数据类型_布尔型 (03:37)
2-10 [第02章_数据类型和运算符] 026-基本数据类型_字符型 (14:49)
2-11 [第02章_数据类型和运算符] 027-转义字符 (14:49)
2-12 [第02章_数据类型和运算符] 028-引用数据类型_字符串 (06:24)
2-13 [第02章_数据类型和运算符] 029-Scanner键盘输入 (18:12)
2-14 [第02章_数据类型和运算符] 030-基本数据类型转换_自动类型转换 (10:30)
2-15 [第02章_数据类型和运算符] 031-基本数据类型转换_自动类型转换原理与练习 (19:45)
2-16 [第02章_数据类型和运算符] 032-基本数据类型转换_强制类型转换 (09:02)
2-17 [第02章_数据类型和运算符] 033-运算符_二元算术运算符 (15:30)
2-18 [第02章_数据类型和运算符] 034-运算符_一元算术运算符 (16:26)
2-19 [第02章_数据类型和运算符] 035-运算符_赋值运算符 (09:59)
2-20 [第02章_数据类型和运算符] 036-运算符_扩展赋值运算符 (15:25)
2-21 [第02章_数据类型和运算符] 037-运算符_关系运算符 (04:54)
2-22 [第02章_数据类型和运算符] 038-运算符_逻辑运算符 (25:20)
2-23 [第02章_数据类型和运算符] 039-运算符_位运算符 (19:07)
2-24 [第02章_数据类型和运算符] 040-运算符_使用位运算交换值 (09:39)
2-25 [第02章_数据类型和运算符] 041-运算符_三目运算符与运算符优先级 (05:26)
2-26 [第02章_数据类型和运算符] 042-运算符与表达式总结 (15:18)
3-1 [第03章_流程控制] 043-第03章内容介绍 (01:43)
3-2 [第03章_流程控制] 044-选择结构_if单选结构 (09:09)
3-3 [第03章_流程控制] 045-选择结构_if双选结构 (11:55)
3-4 [第03章_流程控制] 046-选择结构_if多选结构1 (24:37)
3-5 [第03章_流程控制] 047-选择结构_if多选结构2 (15:25)
3-6 [第03章_流程控制] 048-选择结构_switch选择结构 (13:34)
3-7 [第03章_流程控制] 049-选择结构_switch随堂练习 (24:28)
3-8 [第03章_流程控制] 050-IDEA开发工具的安装与使用 (21:56)
3-9 [第03章_流程控制] 051-循环结构_for循环 (05:29)
3-10 [第03章_流程控制] 052-循环结构_for循环随堂练习 (28:28)
3-11 [第03章_流程控制] 053-循环结构_while循环 (04:37)
3-12 [第03章_流程控制] 054-循环结构_do-while循环 (05:13)
3-13 [第03章_流程控制] 055-循环结构_while随堂练习 (09:29)
3-14 [第03章_流程控制] 056-循环结构_break和continue (14:17)
3-15 [第03章_流程控制] 057-循环结构_break和continue随堂练习 (16:39)
3-16 [第03章_流程控制] 058-循环结构_三种循环结构对比 (07:18)
3-17 [第03章_流程控制] 059-循环结构_嵌套循环 (19:15)
3-18 [第03章_流程控制] 060-循环结构_随堂练习 (19:21)
3-19 [第03章_流程控制] 061-方法_方法声明 (14:23)
3-20 [第03章_流程控制] 062-方法_方法调用 (07:24)
3-21 [第03章_流程控制] 063-方法_方法的运用 (11:36)
3-22 [第03章_流程控制] 064-方法_随堂练习 (18:47)
3-23 [第03章_流程控制] 065-方法_方法调用过程 (05:48)
3-24 [第03章_流程控制] 066-方法_方法重载 (07:26)
3-25 [第03章_流程控制] 067-使用idea调试程序 (08:34)
3-26 [第03章_流程控制] 068-流程控制_总结 (08:20)
3-27 [第03章_流程控制] 069-项目实战_万年历_思路分析 (09:47)
3-28 [第03章_流程控制] 070-项目实战_万年历_代码实现 (23:59)
4-1 [第04章_数组] 071-第04章内容介绍 (01:34)
4-2 [第04章_数组] 072-数组_数组的概念和语法 (12:48)
4-3 [第04章_数组] 073-数组_数组的基本操作 (16:51)
4-4 [第04章_数组] 074-数组_随堂练习 (17:29)
4-5 [第04章_数组] 075-数组_数组的默认初始化 (03:54)
4-6 [第04章_数组] 076-数组_Java中的堆和栈 (20:00)
4-7 [第04章_数组] 077-数组常见操作_获取数组的最值 (08:44)
4-8 [第04章_数组] 078-数组常见操作_通过值获取索引 (11:21)
4-9 [第04章_数组] 079-数组常见操作_数组的反转 (12:40)
4-10 [第04章_数组] 080-数组常见操作_数组元素的删除 (07:57)
4-11 [第04章_数组] 081-数组常见操作_数组元素的插入 (09:10)
4-12 [第04章_数组] 082-数组常见操作_数组的冒泡排序 (15:40)
4-13 [第04章_数组] 083-数组常见操作_数组的选择排序 (08:33)
4-14 [第04章_数组] 084-数组常见操作_二分查找法 (13:52)
4-15 [第04章_数组] 085-数组常见操作_for-each循环遍历 (04:49)
4-16 [第04章_数组] 086-数组常见操作_可变参数与main方法形参 (07:06)
4-17 [第04章_数组] 087-数组常见操作_随堂练习1 (20:21)
4-18 [第04章_数组] 088-数组常见操作_随堂练习2 (19:34)
4-19 [第04章_数组] 089-Arrays工具类_toString方法和equals方法 (08:33)
4-20 [第04章_数组] 090-Arrays工具类_sort方法和binarySearch方法 (02:56)
4-21 [第04章_数组] 091-Arrays工具类_fill方法和copy方法 (15:50)
4-22 [第04章_数组] 092-二维数组_二维数组创建 (15:23)
4-23 [第04章_数组] 093-二维数组_随堂练习 (18:01)
4-24 [第04章_数组] 094-第04章内容总结 (08:13)
4-25 [第04章_数组] 095-项目实战_双色球 (20:14)
5-1 [第05章_面向对象编程基础] 096-第05章内容介绍 (02:49)
5-2 [第05章_面向对象编程基础] 097-面向对象概念 (13:31)
5-3 [第05章_面向对象编程基础] 098-类和对象 (04:49)
5-4 [第05章_面向对象编程基础] 099-类的定义和对象的创建 (20:33)
5-5 [第05章_面向对象编程基础] 100-对象内存分析 (12:23)
5-6 [第05章_面向对象编程基础] 101-面向对象基础随堂练习 (05:17)
5-7 [第05章_面向对象编程基础] 102-成员变量和局部变量区别 (07:19)
5-8 [第05章_面向对象编程基础] 103-匿名对象 (05:04)
5-9 [第05章_面向对象编程基础] 104-构造方法简介 (09:17)
5-10 [第05章_面向对象编程基础] 105-有参构造方法和无参构造方法 (08:50)
5-11 [第05章_面向对象编程基础] 106-构造方法重载 (11:10)
5-12 [第05章_面向对象编程基础] 107-构造方法随堂练习 (06:06)
5-13 [第05章_面向对象编程基础] 108-Java中数据类型传递 (08:30)
5-14 [第05章_面向对象编程基础] 109-构造方法随堂练习2 (14:59)
5-15 [第05章_面向对象编程基础] 110-this关键字 (11:42)
5-16 [第05章_面向对象编程基础] 111-this关键字随堂练习 (07:30)
5-17 [第05章_面向对象编程基础] 112-static关键字_静态变量 (06:28)
5-18 [第05章_面向对象编程基础] 113-static关键字_图解静态变量 (07:47)
5-19 [第05章_面向对象编程基础] 114-static关键字_静态方法 (08:35)
5-20 [第05章_面向对象编程基础] 115-static关键字_代码块 (13:36)
5-21 [第05章_面向对象编程基础] 116-包_package概述 (08:56)
5-22 [第05章_面向对象编程基础] 117-包_类的访问 (05:21)
5-23 [第05章_面向对象编程基础] 118-面向对象基础_总结 (08:41)
6-1 [第06章_面向对象编程进阶] 119-第06章内容介绍 (04:04)
6-2 [第06章_面向对象编程进阶] 120-封装的概念 (09:23)
6-3 [第06章_面向对象编程进阶] 121-访问修饰符 (10:59)
6-4 [第06章_面向对象编程进阶] 122-get、set方法 (14:24)
6-5 [第06章_面向对象编程进阶] 123-getset方法随堂练习 (09:23)
6-6 [第06章_面向对象编程进阶] 124-JavaDoc生成API文档 (10:39)
6-7 [第06章_面向对象编程进阶] 125-什么是继承 (03:25)
6-8 [第06章_面向对象编程进阶] 126-继承的使用 (11:34)
6-9 [第06章_面向对象编程进阶] 127-方法的重写 (12:40)
6-10 [第06章_面向对象编程进阶] 128-继承_随堂练习 (25:04)
6-11 [第06章_面向对象编程进阶] 129-super_调用成员变量和成员方法 (06:35)
6-12 [第06章_面向对象编程进阶] 130-super_调用父类的构造方法 (07:36)
6-13 [第06章_面向对象编程进阶] 131-super_创建对象内存分析 (12:06)
6-14 [第06章_面向对象编程进阶] 132-final关键字 (12:43)
6-15 [第06章_面向对象编程进阶] 133-Object类 (19:30)
6-16 [第06章_面向对象编程进阶] 134-多态的概述与实现 (08:25)
6-17 [第06章_面向对象编程进阶] 135-引用数据类型转换 (16:12)
6-18 [第06章_面向对象编程进阶] 136-多态中成员变量和成员方法的特点 (04:59)
6-19 [第06章_面向对象编程进阶] 137-多态随堂练习 (17:26)
6-20 [第06章_面向对象编程进阶] 138-抽象类_概述 (03:42)
6-21 [第06章_面向对象编程进阶] 139-抽象类_使用抽象类 (11:16)
6-22 [第06章_面向对象编程进阶] 140-抽象类_随堂练习 (07:15)
6-23 [第06章_面向对象编程进阶] 141-接口_接口的概述 (06:38)
6-24 [第06章_面向对象编程进阶] 142-接口_接口的使用 (16:55)
6-25 [第06章_面向对象编程进阶] 143-接口_接口和抽象类的区别 (04:34)
6-26 [第06章_面向对象编程进阶] 144-接口_接口中的默认方法和静态方法 (07:42)
6-27 [第06章_面向对象编程进阶] 145-接口_面向接口编程 (09:08)
6-28 [第06章_面向对象编程进阶] 146-接口_随堂练习 (03:57)
6-29 [第06章_面向对象编程进阶] 147-内部类_什么是内部类 (03:57)
6-30 [第06章_面向对象编程进阶] 148-内部类_成员内部类和静态内部类 (11:40)
6-31 [第06章_面向对象编程进阶] 149-内部类_局部内部类和匿名内部类 (09:16)
6-32 [第06章_面向对象编程进阶] 150-面向对象进阶_总结 (19:21)
6-33 [第06章_面向对象编程进阶] 151-鲜花销售系统_需求分析 (13:06)
6-34 [第06章_面向对象编程进阶] 152-鲜花销售系统_实体类与dao层 (19:31)
6-35 [第06章_面向对象编程进阶] 153-鲜花销售系统_服务层开发 (07:52)
6-36 [第06章_面向对象编程进阶] 154-鲜花销售系统_订单删除和查询 (16:05)
6-37 [第06章_面向对象编程进阶] 155-鲜花销售系统_订单添加和修改 (07:59)
6-38 [第06章_面向对象编程进阶] 156-鲜花销售系统_总结 (03:35)
7-1 [第07章_异常处理] 157-第07章内容介绍 (02:31)
7-2 [第07章_异常处理] 158-异常的概述 (10:42)
7-3 [第07章_异常处理] 159-异常体系 (04:56)
7-4 [第07章_异常处理] 160-异常和错误 (08:17)
7-5 [第07章_异常处理] 161-异常产生过程解析 (02:44)
7-6 [第07章_异常处理] 162-异常处理_抛出异常 (04:57)
7-7 [第07章_异常处理] 163-异常处理_声明异常 (05:34)
7-8 [第07章_异常处理] 164-异常处理_捕获异常 (12:03)
7-9 [第07章_异常处理] 165-异常处理_随堂练习 (09:03)
7-10 [第07章_异常处理] 166-自定义异常类概述 (11:48)
7-11 [第07章_异常处理] 167-自定义异常使用 (05:24)
7-12 [第07章_异常处理] 168-自定义异常随堂练习 (07:27)
7-13 [第07章_异常处理] 169-异常知识点补充 (16:13)
7-14 [第07章_异常处理] 170-异常处理总结 (06:31)
8-1 [第08章_常用工具类] 171-第08章内容介绍 (03:16)
8-2 [第08章_常用工具类] 172-包装类_包装类介绍 (13:06)
8-3 [第08章_常用工具类] 173-包装类_基本类型与包装类互相转换 (13:12)
8-4 [第08章_常用工具类] 174-包装类_基本类型与字符串互相转换 (08:01)
8-5 [第08章_常用工具类] 175-包装类_自动拆箱与装箱 (09:41)
8-6 [第08章_常用工具类] 176-包装类_包装类值比较与缓存问题 (13:31)
8-7 [第08章_常用工具类] 177-包装类_整数进制转换 (05:41)
8-8 [第08章_常用工具类] 178-大数字运算_BigInteger (06:28)
8-9 [第08章_常用工具类] 179-大数字运算_BigDecimal (18:58)
8-10 [第08章_常用工具类] 180-String_String类简单描述 (07:29)
8-11 [第08章_常用工具类] 181-String_字符串常量池 (14:43)
8-12 [第08章_常用工具类] 182-String_字符串查找方法 (18:19)
8-13 [第08章_常用工具类] 183-String_字符串转换方法 (20:33)
8-14 [第08章_常用工具类] 184-String_字符串其他方法 (08:22)
8-15 [第08章_常用工具类] 185-String_随堂练习 (27:30)
8-16 [第08章_常用工具类] 186-StringBuffer_概述和构造方法 (05:22)
8-17 [第08章_常用工具类] 187-StringBuffer_常见方法 (13:18)
8-18 [第08章_常用工具类] 188-StringBuffer_随堂练习 (04:59)
8-19 [第08章_常用工具类] 189-StringBuffer_StringBuilder与字符串拼接性能比较 (06:37)
8-20 [第08章_常用工具类] 190-StringBuffer_对象方法的链式调用 (06:37)
8-21 [第08章_常用工具类] 191-时间日期_时间戳 (02:25)
8-22 [第08章_常用工具类] 192-时间日期_Date类 (08:39)
8-23 [第08章_常用工具类] 193-时间日期_DateFormat (12:01)
8-24 [第08章_常用工具类] 194-时间日期_SimpleDateFormat (09:12)
8-25 [第08章_常用工具类] 195-时间日期_Calendar类 (15:25)
8-26 [第08章_常用工具类] 196-时间日期_随堂练习 (14:32)
8-27 [第08章_常用工具类] 197-工具类_System类 (07:04)
8-28 [第08章_常用工具类] 198-工具类_Math类 (05:48)
8-29 [第08章_常用工具类] 199-工具类_Random类 (06:52)
8-30 [第08章_常用工具类] 200-工具类_UUID类 (02:50)
8-31 [第08章_常用工具类] 201-枚举类 (21:50)
8-32 [第08章_常用工具类] 202-枚举类_随堂练习 (08:56)
8-33 [第08章_常用工具类] 203-File类_File类简单介绍 (05:33)
8-34 [第08章_常用工具类] 204-File类_File类获取方法 (05:21)
8-35 [第08章_常用工具类] 205-File类_File类判断方法 (03:14)
8-36 [第08章_常用工具类] 206-File类_File类其他方法 (06:58)
8-37 [第08章_常用工具类] 207-File类_File类的过滤器 (07:56)
8-38 [第08章_常用工具类] 208-递归_递归的使用 (12:02)
8-39 [第08章_常用工具类] 209-递归_随堂练习 (05:44)
8-40 [第08章_常用工具类] 210-递归_递归目录和文件 (03:53)
8-41 [第08章_常用工具类] 211-常用工具类_总结 (06:24)
8-42 [第08章_常用工具类] 212-商品管理系统_需求分析 (10:58)
8-43 [第08章_常用工具类] 213-商品管理系统_类创建 (14:48)
8-44 [第08章_常用工具类] 214-商品管理系统_容器类封装 (09:00)
8-45 [第08章_常用工具类] 215-商品管理系统_数据初始化 (04:08)
8-46 [第08章_常用工具类] 216-商品管理系统_商品列表 (11:18)
8-47 [第08章_常用工具类] 217-商品管理系统_注册 (16:40)
8-48 [第08章_常用工具类] 218-商品管理系统_登录 (06:43)
8-49 [第08章_常用工具类] 219-商品管理系统_个人信息和退出登录 (02:12)
8-50 [第08章_常用工具类] 220-商品管理系统_添加购物车 (09:10)
8-51 [第08章_常用工具类] 221-商品管理系统_购物车列表 (08:02)
8-52 [第08章_常用工具类] 222-商品管理系统_下单 (12:36)
8-53 [第08章_常用工具类] 223-商品管理系统_总结 (02:36)
9-1 [第09章_集合和泛型] 224-第09章内容介绍 (04:02)
9-2 [第09章_集合和泛型] 225-集合介绍_什么是集合 (10:52)
9-3 [第09章_集合和泛型] 226-集合介绍_集合体系 (06:39)
9-4 [第09章_集合和泛型] 227-集合介绍_Collection接口 (11:54)
9-5 [第09章_集合和泛型] 228-List_List接口介绍 (07:58)
9-6 [第09章_集合和泛型] 229-ArrayList源码分析_变量与构造方法 (11:06)
9-7 [第09章_集合和泛型] 230-ArrayList源码分析_添加方法分析 (21:22)
9-8 [第09章_集合和泛型] 231-ArrayList源码分析_获取方法和修改方法分析 (04:39)
9-9 [第09章_集合和泛型] 232-ArrayList源码分析_插入方法和删除方法分析 (10:23)
9-10 [第09章_集合和泛型] 233-ArrayList源码分析_手写ArrayList (12:01)
9-11 [第09章_集合和泛型] 234-链式存储结构_单链表 (11:35)
9-12 [第09章_集合和泛型] 235-链式存储结构_双链表与环形链表 (05:13)
9-13 [第09章_集合和泛型] 236-LinkedList源码分析_简单使用 (03:22)
9-14 [第09章_集合和泛型] 237-LinkedList源码分析_成员变量和结点类 (04:16)
9-15 [第09章_集合和泛型] 238-LinkedList源码分析_添加方法分析 (08:31)
9-16 [第09章_集合和泛型] 239-LinkedList源码分析_获取方法分析 (11:00)
9-17 [第09章_集合和泛型] 240-LinkedList源码分析_删除方法分析 (08:12)
9-18 [第09章_集合和泛型] 241-LinkedList源码分析_手写LinkedList (14:19)
9-19 [第09章_集合和泛型] 242-Vector类使用 (07:38)
9-20 [第09章_集合和泛型] 243-泛型_泛型介绍 (06:37)
9-21 [第09章_集合和泛型] 244-泛型_泛型的简单使用 (05:37)
9-22 [第09章_集合和泛型] 245-泛型_含有泛型的类 (06:46)
9-23 [第09章_集合和泛型] 246-泛型_含有泛型的方法 (05:30)
9-24 [第09章_集合和泛型] 247-泛型_含有泛型的接口 (08:14)
9-25 [第09章_集合和泛型] 248-泛型_泛型通配符 (17:59)
9-26 [第09章_集合和泛型] 249-队列_队列简单使用 (11:04)
9-27 [第09章_集合和泛型] 250-队列_使用数组实现队列 (26:13)
9-28 [第09章_集合和泛型] 251-队列_使用链表实现队列 (11:10)
9-29 [第09章_集合和泛型] 252-栈_栈简单使用 (06:28)
9-30 [第09章_集合和泛型] 253-栈_使用数组实现栈 (07:48)
9-31 [第09章_集合和泛型] 254-栈_使用链表实现栈 (07:06)
9-32 [第09章_集合和泛型] 255-迭代器_迭代器的简单使用 (10:55)
9-33 [第09章_集合和泛型] 256-迭代器_iterator类详解 (08:25)
9-34 [第09章_集合和泛型] 257-迭代器_自定义集合的迭代器 (07:29)
9-35 [第09章_集合和泛型] 258-迭代器_ListIterator (04:25)
9-36 [第09章_集合和泛型] 259-Map_Map集合常用方法 (10:21)
9-37 [第09章_集合和泛型] 260-Map_Map集合遍历方式 (07:20)
9-38 [第09章_集合和泛型] 261-Map_Map集合如何判断key是否重复 (07:48)
9-39 [第09章_集合和泛型] 262-HashMap源码分析_图解实现原理 (42:37)
9-40 [第09章_集合和泛型] 263-HashMap源码分析_成员变量和静态变量 (08:14)
9-41 [第09章_集合和泛型] 264-HashMap源码分析_构造方法 (04:52)
9-42 [第09章_集合和泛型] 265-HashMap源码分析_put方法 (19:53)
9-43 [第09章_集合和泛型] 266-HashMap源码分析_hash寻址算法 (07:32)
9-44 [第09章_集合和泛型] 267-HashMap源码分析_HashMap扩容 (23:03)
9-45 [第09章_集合和泛型] 268-HashMap源码分析_get方法 (05:37)
9-46 [第09章_集合和泛型] 269-HashMap源码分析_优化技巧 (04:24)
9-47 [第09章_集合和泛型] 270-手写HashMap_put方法 (10:34)
9-48 [第09章_集合和泛型] 271-手写HashMap_resize方法 (08:22)
9-49 [第09章_集合和泛型] 272-手写HashMap_get方法 (06:20)
9-50 [第09章_集合和泛型] 273-LinkedHashMap (02:49)
9-51 [第09章_集合和泛型] 274-Hashtable和ConcurrentHashMap (04:13)
9-52 [第09章_集合和泛型] 275-二叉树 (07:36)
9-53 [第09章_集合和泛型] 276-平衡二叉树 (11:37)
9-54 [第09章_集合和泛型] 277-红黑二叉树 (33:56)
9-55 [第09章_集合和泛型] 278-TreeMap_简单使用 (04:01)
9-56 [第09章_集合和泛型] 279-TreeMap_内部比较器Comparable (08:05)
9-57 [第09章_集合和泛型] 280-TreeMap_外部比较器Comparator (07:36)
9-58 [第09章_集合和泛型] 281-Set_Set集合介绍 (04:50)
9-59 [第09章_集合和泛型] 282-Set_HashSet (07:35)
9-60 [第09章_集合和泛型] 283-Set_LinkedHashSet (04:26)
9-61 [第09章_集合和泛型] 284-Set_TreeSet (07:10)
9-62 [第09章_集合和泛型] 285-Collections工具类_sort和shuffle (07:06)
9-63 [第09章_集合和泛型] 286-Collections工具类_reverse和fill (03:00)
9-64 [第09章_集合和泛型] 287-集合_随堂练习 (25:21)
9-65 [第09章_集合和泛型] 288-集合与泛型总结 (06:57)
9-66 [第09章_集合和泛型] 289-超市会员管理系统_需求分析 (02:28)
9-67 [第09章_集合和泛型] 290-超市会员管理系统_环境搭建 (07:47)
9-68 [第09章_集合和泛型] 291-超市会员管理系统_代码编写 (08:42)