课程试听
第一章 就业课(2.0)-Java基础语法

1-1 java运行环境

- day01_01_Java语言发展史
- day01_02_计算机进制转换
- day01_03_计算机存储单元
- day01_04_命令提示符_基本介绍
- day01_05_命令提示符_常用命令
- day01_06_Java语言的跨平台性
- day01_07_JDK、JRE与JVM
- day01_08_JDK的下载与安装
- day01_09_环境变量的配置
1-2 HelloWorld案例

- day01_10_HelloWorld程序的代码编写
- day01_11_HelloWorld程序的编译运行
- day01_12_HelloWorld的常见问题与Notepad++使用
- day01_13_程序注释与HelloWorld说明
1-3 关键字&标识符

- day01_14_关键字的概念与特征
- day01_15_标识符的概念与规则
1-4 常量&变量

- day01_16_常量的概念与分类
- day01_17_常量的打印输出
- day01_18_基本数据类型
- day01_19_变量的概念与定义格式
- day01_20_变量的基本使用
- day01_21_变量的注意事项
1-5 数据类型转换

- day02_01_数据类型转换_自动转换
- day02_02_数据类型转换_强制转换
- day02_03_数据类型转换_注意事项
- day02_04_ASCII编码表
1-6 运算符

- day02_05_算术运算符_四则与取模运算
- day02_06_算术运算符_加号的多种用法
- day02_07_算术运算符_自增自减运算符
- day02_08_赋值运算符
- day02_09_比较运算符
- day02_10_逻辑运算符
- day02_11_三元运算符
1-7 方法入门

- day02_12_方法入门_概念引入
- day02_13_方法入门_方法的定义
- day02_14_方法入门_方法的调用
1-8 JDK9新特性-Jshell

- day02_15_JDK9的JShell简单使用
- day02_16_编译器的两点优化
1-9 选择结构-if语句-switch语句

- day03_01_流程概述与顺序结构
- day03_02_选择结构_单if语句
- day03_03_选择结构_标准if-else语句
- day03_04_选择结构_扩展if-else语句
- day03_05_练习_用if语句实现考试成绩划分
- day03_06_练习_用if语句替换三元运算符
- day03_07_选择结构_标准的switch语句
- day03_08_选择结构_穿透的switch语句
1-10 循环结构-for-while-do..while

- day03_09_循环结构_循环概述与基本组成部分
- day03_10_循环结构_for循环
- day03_11_循环结构_while循环
- day03_12_循环结构_do-while循环
- day03_13_练习_用循环求出1-100之间的偶数和
- day03_14_三种循环的区别
- day03_15_循环控制_break语句
- day03_16_循环控制_continue语句
- day03_17_死循环
- day03_18_循环嵌套
1-11 开发工具-IDEA

- day04_01_集成开发环境IDE的概述
- day04_02_IntelliJ-IDEA的安装
- day04_03_IDEA的项目结构
- day04_04_IDEA的HelloWorld
- day04_05_IDEA的基本配置
- day04_06_IDEA的常用快捷键
- day04_07_IDEA的项目关闭打开与模块导入
1-12 方法复习

- day04_08_复习简单方法的使用
- day04_09_方法的定义格式
- day04_10_方法的三种调用格式
- day04_11_方法的调用流程图解
- day04_12_对比有参数和无参数
- day04_13_对比有返回值和无返回值
- day04_14_方法练习1_比较两个数字是否相同
- day04_15_方法练习2_求出1到100的累加和
- day04_16_方法练习3_打印指定次数的HelloWorld
- day04_17_方法的注意事项
1-13 方法重载

- day04_18_方法重载的基本使用
- day04_19_方法重载的注意事项
- day04_20_重载练习1_四种不同参数类型的方法
- day04_21_重载练习2_判断方法的正确重载
- day04_22_重载练习3_实现重载的println方法
1-14 数组

- day05_01_数组的概念
- day05_02_数组的定义格式一_动态初始化
- day05_03_数组的定义格式二_静态初始化
- day05_04_数组的定义格式三_省略的静态初始化
- day05_05_访问数组元素进行获取
- day05_06_访问数组元素进行赋值
- day05_07_Java中的内存划分
- day05_08_一个数组的内存图
- day05_09_两个数组的内存图
- day05_10_两个引用指向同一个数组的内存图
- day05_11_常见问题_数组索引越界异常
- day05_12_常见问题_空指针异常
- day05_13_获取数组的长度
- day05_14_数组的遍历输出
- day05_15_求出数组中的最值
- day05_16_数组元素反转
- day05_17_数组作为方法参数_传递地址
- day05_18_数组作为方法返回值_返回地址
第二章 就业课(2.0)-面向对象和封装

2-1 描述类介绍与使用

- day06_01_面向对象思想的概述
- day06_02_面向对象思想的举例
- day06_03_类和对象的关系
- day06_04_类的定义
- day06_05_对象的创建及其使用
- day06_06_手机类练习
- day06_07_一个对象的内存图
- day06_08_两个对象使用同一个方法的内存图
- day06_09_两个引用指向同一个对象的内存图
- day06_10_使用对象类型作为方法的参数
- day06_11_使用对象类型作为方法的返回值
- day06_12_成员变量和局部变量的区别
- day06_13_面向对象三大特征之封装性
- day06_14_private关键字的作用及使用
- day06_15_练习使用private关键字定义学生类
- day06_16_this关键字的作用
- day06_17_构造方法
- day06_18_定义一个标准的类
第三章 就业课(2.0)-常用API第一部分

3-1 Scanner类

- day07_01_API概述和使用步骤
- day07_02_Scanner概述及其API文档的使用
- day07_03_Scanner的使用步骤
- day07_04_Scanner练习一_键盘输入两个数字求和
- day07_05_Scanner练习二_键盘输入三个数字求最大值
3-2 匿名对象

- day07_06_匿名对象的说明
- day07_07_匿名对象作为方法的参数和返回值
3-3 Random类

- day07_08_Random概述和基本使用
- day07_09_Random生成指定范围的随机数
- day07_10_Random练习一_生成1-n之间的随机数
- day07_11_Random练习二_猜数字小游戏
3-4 ArrayList集合

- day07_12_对象数组
- day07_13_ArrayList集合概述和基本使用
- day07_14_ArrayList集合的常用方法和遍历
- day07_15_ArrayList集合存储基本数据类型
- day07_16_ArrayList练习一_存储随机数字
- day07_17_ArrayList练习二_存储自定义对象
- day07_18_ArrayList练习三_按指定格式遍历集合字符串
- day07_19_ArrayList练习四_筛选集合中的随机数
3-5 String类

- day08_01_字符串概述和特点
- day08_02_字符串的构造方法和直接创建
- day08_03_字符串的常量池
- day08_04_字符串的比较相关方法
- day08_05_字符串的获取相关方法
- day08_06_字符串的截取方法
- day08_07_字符串的转换相关方法
- day08_08_字符串的分割方法
- day08_09_练习:按指定格式拼接字符串
- day08_10_练习:统计输入的字符串中各种字符的个数
3-6 static静态

- day08_11_静态static关键字概述
- day08_12_静态static关键字修饰成员变量
- day08_13_静态static关键字修饰成员方法
- day08_14_静态static的内存图
- day08_15_静态代码块
3-7 Arrays工具类

- day08_16_数组工具类Arrays
- day08_17_Arrays练习:字符串倒序排列
3-8 Math类

- day08_18_数学工具类Math
- day08_19_Math练习:小学数学真题
第四章 就业课(2.0)-继承与多态

4-1 继承

- day09_01_继承的概述
- day09_02_继承的格式
- day09_03_继承中成员变量的访问特点
- day09_04_区分子类方法中重名的三种变量
- day09_05_继承中成员方法的访问特点
- day09_06_继承中方法的覆盖重写_概念与特点
- day09_07_继承中方法的覆盖重写_注意事项
- day09_08_继承中方法的覆盖重写_应用场景
- day09_09_继承中构造方法的访问特点
- day09_10_super关键字的三种用法
- day09_11_this关键字的三种用法
- day09_12_super与this关键字图解
- day09_13_Java继承的三个特点
4-2 抽象类

- day09_14_抽象的概念
- day09_15_抽象方法和抽象类的格式
- day09_16_抽象方法和抽象类的使用
- day09_17_抽象方法和抽象类的注意事项
- day09_18_发红包案例_分析
- day09_19_发红包案例_实现
4-3 接口

- day10_01_接口概述与生活举例
- day10_02_接口的定义基本格式
- day10_03_接口的抽象方法定义
- day10_04_接口的抽象方法使用
- day10_05_接口的默认方法定义
- day10_06_接口的默认方法使用
- day10_07_接口的静态方法定义
- day10_08_接口的静态方法使用
- day10_09_接口的私有方法定义
- day10_10_接口的私有方法使用
- day10_11_接口的常量定义和使用
- day10_12_接口的内容小结
- day10_13_继承父类并实现多个接口
- day10_14_接口之间的多继承
4-4 多态

- day10_15_多态的概述
- day10_16_多态的格式与使用
- day10_17_多态中成员变量的使用特点
- day10_18_多态中成员方法的使用特点
- day10_19_使用多态的好处
- day10_20_对象的向上转型
- day10_21_对象的向下转型
- day10_22_用instanceof关键字进行类型判断
- day10_23_笔记本USB接口案例_分析
- day10_24_笔记本USB接口案例_实现
4-5 final关键字

- day11_01_final关键字概念与四种用法
- day11_02_final关键字用于修饰类
- day11_03_final关键字用于修饰成员方法
- day11_04_final关键字用于修饰局部变量
- day11_05_final关键字用于修饰成员变量
4-6 权限修饰符

- day11_06_四种权限修饰符
4-7 内部类

- day11_07_内部类的概念与分类
- day11_08_成员内部类的定义
- day11_09_成员内部类的使用
- day11_10_内部类的同名变量访问
- day11_11_局部内部类定义
- day11_12_局部内部类的final问题
- day11_13_匿名内部类
- day11_14_匿名内部类的注意事项
- day11_15_类作为成员变量类型
- day11_16_接口作为成员变量类型
- day11_17_接口作为方法的参数和或返回值
- day11_18_发红包案例_分析
- day11_19_发红包案例_普通红包平均分发
- day11_20_发红包案例_手气红包随机分发
第五章 就业课(2.0)-常用API第二部分

5-1 Object类

- 02_Object类的toString方法
- 03_Object类的equals方法
- 04_重写Object类的equals方法
- 05_Objects类的equals方法
- 05_1Object类&Objects类
5-2 Date类

- 06_毫秒值的概念和作用
- 07_Date类的构造方法和成员方法
- 08_DateFormat类&SimpleDateFormat类介绍
- 09_DateFormat类的format方法和parse方法
- 10_练习_请使用日期时间相关的API,计算出一个人已经出生了多少天
5-3 Calendar类

- 11_Calendar类介绍_获取对象的方式
- 12_Calendar类的常用成员方法
- 12_1时间日期相关类
5-4 System类

- 13_System类的常用方法
5-5 StringBuilder类

- 14_StringBuilder的原理
- 15_StringBuilder的构造方法和append方法
- 16_StringBuilder的toString方法
- 16_1System类&StringBuilder类
5-6 基本类型包装类

- 17_包装类的概念
- 18_包装类_装箱与拆箱
- 19_包装类_自动装箱与自动拆箱
- 20_包装类_基本类型与字符串类型之间的相互转换
- 20_1包装类
第六章 就业课(2.0)-集合

6-1 Collection集合

- 02_Collection集合概述
- 03_集合框架介绍avi
- 04_Collection集合常用功能
- 04_2Collection集合
- 05_Iterator接口介绍
- 06_迭代器的代码实现
- 07_迭代器的实现原理
- 08_增强for循环
- 08_2迭代器&增强for
6-2 泛型

- 09_泛型的概念
- 10_使用泛型的好处
- 11_定义和使用含有泛型的类
- 12_定义和使用含有泛型的方法(1)
- 13_定义和使用含有泛型的接口
- 14_泛型通配符
- 14_2泛型的使用
6-3 斗地主案例(单列)

- 15_斗地主案例的需求分析
- 16_斗地主案例的代码实现
6-4 数据结构

- 02_数据结构_栈
- 03_数据结构_队列
- 04_数据结构_数组
- 05_数据结构_链表
- 06_数据结构_红黑树
6-5 List集合

- 07_List集合_介绍&常用方法
- 08_Arraylist集合
- 09_LinkedList集合
- 10_Vector集合
6-6 Set集合

- 11_HashSet集合介绍
- 12_哈希值
- 13_HashSet集合存储数据的结构(哈希表)
- 14_Set集合存储元素不重复的原理
- 15_HashSet存储自定义类型元素
- 16_LinkedHashSet集合
- 17_可变参数
6-7 Collections工具类

- 18_Collections集合工具类的方法_addAll&shuffle
- 19_Collections集合工具类的方法_sort(List)
- 20_Collections集合工具类的方法_sort(List,Comparator)
6-8 Map集合

- 01_Map集合概述
- 02_Map常用子类
- 03_Map接口中的常用方法
- 04_Map集合遍历键找值方式
- 05_Entry键值对对象
- 06_Map集合遍历键值对方式
- 07_HashMap存储自定义类型键值
- 08_LinkedHashMap集合
- 09_Hashtable集合
- 10_练习_计算一个字符串中每个字符出现次数
- 11_JDK9对集合添加的优化_of方法
6-9 Debug调试

- 12_Debug追踪
6-10 斗地主案例(双列)

- 13_斗地主案例的需求分析
- 14_斗地主案例的代码实现
第七章 就业课(2.0)-异常与多线程

7-1 异常

- 02_异常概念&异常体系
- 03_异常分类
- 04_异常的产生过程解析
- 05_throw关键字
- 06_Objects非空判断_requireNonNull方法
- 07_throws关键字_异常处理的第一种方式,交给别人处理
- 08_try_catch_异常处理的第二种方式,自己处理异常
- 09_Throwable类中3个异常处理的方法
- 10_finally代码块
- 11_异常注意事项_多异常的捕获处理
- 12_异常注意事项_finally有return语句
- 13_异常注意事项_子父类异常
- 14_自定义异常类
- 15_自定义异常类的练习
7-2 线程实现方式

- 16_并发与并行
- 17_进程概念
- 18_线程概念
- 19_线程调度
- 20_主线程
- 21_创建多线程程序的第一种方式_创建Thread类的子类
- 02_多线程原理_随机性打印结果
- 03_多线程原理_多线程内存图解
- 04_Thread类的常用方法_获取线程名称的方法
- 05_Thread类的常用方法_设置线程名称的方法
- 06_Thread类的常用方法_sleep
- 07_创建多线程程序的第二种方式_实现Runnable接口
- 08_Thread和Runnable的区别
- 09_匿名内部类方式实现线程的创建
7-3 线程同步机制

- 10_线程安全问题的概述
- 11_线程安全问题的代码实现
- 12_线程安全问题产生的原理
- 13_解决线程安全问题_同步代码块
- 14_同步技术的原理
- 15_解决线程安全问题_同步方法
- 16_静态同步方法
- 17_解决线程安全问题_Lock锁
7-4 等待唤醒机制

- 18_线程状态概述
- 19_等待唤醒案例分析
- 20_等待唤醒案例代码实现
- 21_Object类中wait带参方法和notifyAll方法
- 02_线程间通信
- 03_等待唤醒机制概述
- 04_等待唤醒机制需求分析
- 05_等待唤醒机制代码实现_包子类&包子铺类
- 06_等待唤醒机制代码实现_吃货类&测试类
7-5 线程池

- 07_线程池的概念和原理
- 08_线程池的代码实现
7-6 Lambda表达式

- 09_函数式编程思想概述
- 10_冗余的Runnable代码
- 11_编程思想转换&体验Lambda的更优写法
- 12_Lambda标准格式
- 13_Lambda表达式的无参数无返回值的练习
- 14_Lambda表达式有参数有返回值的练习
- 15_Lambda表达式有参数有返回值的练习(自定义接口)
- 16_Lambda省略格式&Lambda使用前提
第八章 就业课(2.0)-File类与IO流

8-1 File类

- 02_File类的概述
- 03_File类的静态成员变量
- 04_绝对路径和相对路径
- 05_File类的构造方法
- 06_File类获取功能的方法
- 07_File类判断功能的方法
- 08_File类创建删除功能的方法
- 09_File类遍历(文件夹)目录功能
8-2 递归

- 10_递归概念&分类&注意事项
- 11_练习_使用递归计算1-n之间的和
- 12_练习_使用递归计算阶乘
- 13_练习_递归打印多级目录
- 14_综合案例_文件搜索
8-3 过滤器

- 15_FileFilter过滤器的原理和使用
- 16_FileNameFilter过滤器的使用和Lambda优化程序
8-4 IO字节流

- 02_IO概述(概念&分类)
- 03_一切皆为字节
- 04_字节输出流_OutputStream类&FileOutputStream类介绍
- 05_字节输出流写入数据到文件
- 06_文件存储的原理和记事本打开文件的原理
- 07_字节输出流写多个字节的方法
- 08_字节输出流的续写和换行
- 09_字节输入流_InputStream类&FileInputStream类介绍
- 10_字节输入流读取字节数据
- 11_字节输入流一次读取一个字节的原理
- 12_字节输入流一次读取多个字节
- 13_练习_文件复制
- 14_使用字节流读取中文的问题
8-5 IO字符流

- 15_字符输入流_Reader类&FileReader类介绍
- 16_字符输入流读取字符数据
- 17_字符输出流_Writer类&FileWriter类介绍
- 18_字符输出流的基本使用_写出单个字符到文件
- 19_flush方法和close方法的区别
- 20_字符输出流写数据的其他方法
- 21_字符输出流的续写和换行
- 22_使用try_catch_finally处理流中的异常
- 23_JDK7和JDK9流中异常的处理
8-6 Properties集合

- 24_使用Properties集合存储数据,遍历取出Properties集合中的数据
- 25_Properties集合中的方法store
- 26_Properties集合中的方法load
8-7 缓冲流

- 02_缓冲流的原理
- 03_BufferedOutputStream_字节缓冲输出流
- 04_BufferedInputStream_字节缓冲输入流
- 05_缓冲流的效率测试_复制文件
- 06_BufferedWriter_字符缓冲输出流
- 07_BufferedReader_字符缓冲输入流
- 08_练习_对文本的内容进行排序
8-8 转换流

- 09_字符编码和字符集
- 10_编码引出的问题_FileReader读取GBK格式的文件
- 11_转换流的原理
- 12_OutputStreamWriter介绍&代码实现
- 13_InputStreamReader介绍&代码实现
- 14_练习_转换文件编码
8-9 序列化流

- 15_序列化和反序列化的概述
- 16_对象的序列化流_ObjectOutputStream
- 17_对象的反序列化流_ObjectInputStream
- 18_transient关键字_瞬态关键字
- 19_InvalidClassException异常_原理和解决方案
- 20_练习_序列化集合
8-10 打印流

- 21_打印流_概述和使用
第九章 就业课(2.0)-网络编程

9-1 网络通信概述

- 02_软件结构
- 03_网络通信协议
- 04_网络通信协议分类
- 05_IP地址
- 06_端口号
9-2 TCP协议

- 07_TCP通信的概述(上)
- 08_TCP通信的概述(下)
- 09_TCP通信的客户端代码实现
- 10_TCP通信的服务器端代码实现
9-3 综合案例_文件上传

- 11_综合案例_文件上传的原理
- 12_综合案例_文件上传案例的客户端
- 13_综合案例_文件上传案例的服务器端
- 14_综合案例_文件上传案例阻塞问题
- 15_综合案例_文件上传案例优化(文件命名&循环接收&多线程提高效率)
9-4 模拟BS服务器案例

- 16_模拟BS服务器分析
- 17_模拟BS服务器代码实现
第十章 就业课(2.0)-JDK8新特性

10-1 常用函数接口

- 02_函数式接口的概念&函数式接口的定义
- 03_函数式接口的使用
- 04_性能浪费的日志案例
- 05_使用Lambda优化日志案例
- 06_函数式接口作为方法的参数案例
- 07_函数式接口作为方法的返回值类型案例
- 08_常用的函数式接口_Supplier接口
- 09_常用的函数式接口_Supplier接口练习_求数组元素最大值
- 10_常用的函数式接口_Consumer接口
- 11_常用的函数式接口_Consumer接口的默认方法andThen
- 12_常用的函数式接口_Consumer接口练习_字符串拼接输出
- 13_常用的函数式接口_Predicate接口
- 14_常用的函数式接口_Predicate接口_默认方法and
- 15_常用的函数式接口_Predicate接口_默认方法or&negate
- 16_常用的函数式接口_Predicate接口练习_集合信息筛选
- 17_常用的函数式接口_Function接口
- 18_常用的函数式接口_Function接口_默认方法andThen
- 19_常用的函数式接口_Function接口练习_自定义函数模型拼接
10-2 Stream流式思想概述

- 02_使用传统的方式,遍历集合,对集合中的数据进行过滤
- 03_使用Stream流的方式,遍历集合,对集合中的数据进行过滤
- 04_流式思想概述
10-3 两种获取Stream流的方式

- 05_两种获取Stream流的方式
- 06_Stream流中的常用方法_forEach
- 07_Stream流中的常用方法_filter
- 08_Stream流的特点_只能使用一次
- 09_Stream流中的常用方法_map
- 10_Stream流中的常用方法_count
- 11_Stream流中的常用方法_limit
- 12_Stream流中的常用方法_skip
- 13_Stream流中的常用方法_concat
- 14_练习:集合元素处理(传统方式)
- 15_练习:集合元素处理(Stream方式)
10-4 方法引用

- 16_方法引用基本介绍
- 17_方法引用_通过对象名引用成员方法
- 18_方法引用_通过类名引用静态成员方法
- 19_方法引用_通过super引用父类的成员方法
- 20_方法引用_通过this引用本类的成员方法
- 21_方法引用_类的构造器(构造方法)引用
- 22_方法引用_数组的构造器引用