当前位置:网站首页 > Java基础 > 正文

李刚java视频教程



 第1章 Java语言概述与开发环境<br/> 1.1 Java语言的发展简史<br/> 1.2 Java程序运行机制<br/> 1.2.1 高级语言的运行机制<br/> 1.2.2 Java程序的运行机制和JVM<br/> 1.3 开发Java程序的准备<br/> 1.3.1 下载和安装Java 17的JDK<br/> 不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢?<br/> 1.3.2 JDK 17增强的安装器与PATH环境变量<br/> 为什么选择用户变量?用户变量与系统变量有什么区别?<br/> 1.4 第一个Java程序<br/> 1.4.1 编辑Java源代码<br/> 1.4.2 编译Java程序<br/> 当编译C程序时,不仅需要指定存放目标文件的位置,而且需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢?<br/> 1.4.3 运行Java程序<br/> 1.4.4 根据CLASSPATH环境变量定位类<br/> 1.5 Java程序的基本规则<br/> 1.5.1 Java程序的组织形式<br/> 1.5.2 Java源文件的命名规则<br/> 1.5.3 初学者容易犯的错误<br/> 1.6 交互式工具:jshell<br/> 1.7 Java 17改进的垃圾回收器<br/> 1.8 何时开始使用IDE工具<br/> 我想学习Java编程,到底是学习Eclipse好,还是学习IntelliJ IDEA好呢?<br/> 1.9 本章小结<br/> 本章练习<br/> 第2章 理解面向对象<br/> 2.1 面向对象<br/> 2.1.1 结构化程序设计简介<br/> 2.1.2 程序的三种基本结构<br/> 2.1.3 面向对象程序设计简介<br/> 2.1.4 面向对象的基本特征<br/> 2.2 UML介绍<br/> 2.2.1 用例图<br/> 2.2.2 类图<br/> 2.2.3 组件图<br/> 2.2.4 部署图<br/> 2.2.5 顺序图<br/> 2.2.6 活动图<br/> 2.2.7 状态机图<br/> 2.3 Java的面向对象特征<br/> 2.3.1 一切都是对象<br/> 2.3.2 类和对象<br/> 2.4 本章小结<br/> 第3章 数据类型和运算符<br/> 3.1 注释<br/> 3.1.1 单行注释和多行注释<br/> 3.1.2 文档注释<br/> API文档是什么?<br/> 为什么要学习查看API文档的方法?<br/> 3.2 变量与数据类型分类<br/> 什么是变量?变量有什么用?<br/> 3.3 标识符和关键字<br/> 3.3.1 分隔符<br/> 3.3.2 标识符规则<br/> 3.3.3 Java关键字<br/> 3.4 基本数据类型<br/> 3.4.1 整型<br/> 3.4.2 字符型<br/> 什么是字符集?<br/> 3.4.3 浮点型<br/> 3.4.4 在数值中使用下画线分隔<br/> 3.4.5 布尔型<br/> 3.4.6 使用var定义变量<br/> 3.5 基本类型的类型转换<br/> 3.5.1 自动类型转换<br/> 3.5.2 强制类型转换<br/> 3.5.3 表达式类型的自动提升<br/> 3.6 直接量<br/> 3.6.1 直接量的类型<br/> 3.6.2 直接量的赋值<br/> 3.6.3 Java 17增加的块字符串<br/> 3.7 运算符<br/> 3.7.1 算术运算符<br/> 3.7.2 赋值运算符<br/> 3.7.3 位运算符<br/> 3.7.4 扩展后的赋值运算符<br/> 3.7.5 比较运算符<br/> 3.7.6 逻辑运算符<br/> 3.7.7 三目运算符<br/> 3.7.8 运算符的结合性和优先级<br/> 3.8 本章小结<br/> 本章练习<br/> 第4章 流程控制与数组<br/> 4.1 顺序结构<br/> 4.2 分支结构<br/> 4.2.1 if条件语句<br/> 4.2.2 传统switch分支语句<br/> 4.2.3 Java 17的新式switch语句<br/> 4.2.4 Java 17新增的switch表达式<br/> 4.3 循环结构<br/> 4.3.1 while循环语句<br/> 4.3.2 do while循环语句<br/> 4.3.3 for循环<br/> 4.3.4 嵌套循环<br/> 4.4 控制循环结构<br/> 4.4.1 使用break结束循环<br/> 4.4.2 使用continue忽略本次循环剩下的语句<br/> 4.4.3 使用return结束方法<br/> 4.5 数组类型<br/> 4.5.1 理解数组:数组也是一种类型<br/> int[]是一种数据类型吗?怎么使用这种类型呢?<br/> 4.5.2 定义数组<br/> 4.5.3 数组的初始化<br/> 能不能只分配内存空间,不赋初始值呢?<br/> 4.5.4 使用数组<br/> 为什么要记住这些异常信息?<br/> 4.5.5 foreach循环<br/> 4.6 深入数组<br/> 4.6.1 内存中的数组<br/> 为什么有栈内存和堆内存之分?<br/> 4.6.2 基本类型数组的初始化<br/> 4.6.3 引用类型数组的初始化<br/> 4.6.4 没有多维数组<br/> 我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样不就可以扩展成三维数组,甚至扩展成更多维的数组吗?<br/> 4.6.5 操作数组的工具类:Arrays<br/> 4.6.6 数组应用举例<br/> 4.7 本章小结<br/> 本章练习<br/> 第5章 面向对象(上)<br/> 5.1 类和对象<br/> 5.1.1 定义类<br/> 构造器不是没有返回值吗?为什么不能用void声明呢?<br/> 5.1.2 对象的产生和使用<br/> 5.1.3 对象、引用和指针<br/> 5.1.4 对象的this引用<br/> 5.2 方法详解<br/> 5.2.1 方法的所属性<br/> 5.2.2 方法的参数传递机制<br/> 5.2.3 形参个数可变的方法<br/> 5.2.4 递归方法<br/> 5.2.5 方法重载<br/> 为什么方法的返回值类型不能用于区分重载的方法?<br/> 5.3 成员变量和局部变量<br/> 5.3.1 成员变量和局部变量分类<br/> 5.3.2 成员变量的初始化和内存中的运行机制<br/> 5.3.3 局部变量的初始化和内存中的运行机制<br/> 5.3.4 变量的使用规则<br/> 5.4 隐藏和封装<br/> 5.4.1 理解封装<br/> 5.4.2 使用访问控制符<br/> 5.4.3 package、import和import static<br/> 5.4.4 Java的常用包<br/> 5.5 深入构造器<br/> 5.5.1 使用构造器执行初始化<br/> 构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象?<br/> 5.5.2 构造器重载<br/> 为什么要用this来调用另一个重载的构造器?我把另一个构造器中的代码复制到这个构造器中不就可以了吗?<br/> 5.6 类的继承<br/> 5.6.1 继承的特点<br/> 5.6.2 重写父类的方法<br/> 5.6.3 super限定<br/> 5.6.4 调用父类构造器<br/> 为什么我在创建Java对象时从未感觉到java.lang.Object类的构造器被调用过?<br/> 5.7 多态<br/> 5.7.1 多态性<br/> 5.7.2 引用变量的强制类型转换<br/> 5.7.3 instanceof运算符<br/> 5.7.4 Java 17为instanceof增加的模式匹配<br/> 5.7.5 Java 17为switch增加的模式匹配<br/> 5.8 继承与组合<br/> 5.8.1 使用继承的注意点<br/> 5.8.2 利用组合实现复用<br/> 当使用组合关系实现复用时,需要创建两个Animal对象,这是不是意味着使用组合关系时系统开销更大?<br/> 5.9 初始化块<br/> 5.9.1 使用初始化块<br/> 5.9.2 实例初始化块和构造器<br/> 5.9.3 类初始化块<br/> 5.10 本章小结<br/> 本章练习<br/> 第6章 面向对象(下)<br/> 6.1 包装类<br/> Java为什么要对这些数据进行<br/> 缓存呢?<br/> 6.2 处理对象<br/> 6.2.1 打印对象和toString方法<br/> 6.2.2 ==和equals方法<br/> 上面程序中在判断obj是否为Person类的实例时,为何不用obj instanceof Person来判断呢?<br/> 6.3 类成员<br/> 6.3.1 理解类成员<br/> 6.3.2 单例类<br/> 6.4 final修饰符<br/> 6.4.1 final成员变量<br/> 6.4.2 final局部变量<br/> 6.4.3 使用final修饰基本类型变量和引用<br/> 类型变量的区别<br/> 6.4.4 可执行“宏替换”的final变量<br/> 6.4.5 final方法<br/> 6.4.6 final类<br/> 6.4.7 不可变类<br/> 6.4.8 缓存实例的不可变类<br/> 6.5 抽象类<br/> 6.5.1 抽象方法和抽象类<br/> 6.5.2 抽象类的作用<br/> 6.6 改进后的接口<br/> 6.6.1 接口的概念<br/> 6.6.2 改进后的接口定义<br/> 6.6.3 接口的继承<br/> 6.6.4 使用接口<br/> 6.6.5 接口和抽象类<br/> 6.6.6 面向接口编程<br/> 6.7 内部类<br/> 6.7.1 Java 17改进的非静态内部类<br/> 非静态内部类对象和外部类对象的关系是怎样的?<br/> 6.7.2 静态内部类<br/> 为什么静态内部类的实例方法也不能访问外部类的实例变量呢?<br/> 在接口里是否可以定义内部接口?<br/> 6.7.3 使用内部类<br/> 既然内部类是外部类的成员,那么是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类呢?<br/> 6.7.4 局部内部类<br/> 6.7.5 匿名内部类<br/> 6.8 Lambda表达式<br/> 6.8.1 Lambda表达式入门<br/> 6.8.2 Lambda表达式与函数式接口<br/> 6.8.3 在Lambda表达式中使用var<br/> 6.8.4 方法引用与构造器引用<br/> 6.8.5 Lambda表达式与匿名内部类的联系和区别<br/> 6.8.6 使用Lambda表达式调用Arrays的类方法<br/> 6.9 枚举类<br/> 6.9.1 手动实现枚举类<br/> 6.9.2 枚举类入门<br/> 6.9.3 枚举类的成员变量、方法和构造器<br/> 6.9.4 实现接口的枚举类<br/> 枚举类不是用final修饰了吗?怎么还能派生子类呢?<br/> 6.9.5 包含抽象方法的枚举类<br/> 6.10 Java 17引入的密封类<br/> 6.10.1 密封类与其子类<br/> 6.10.2 密封类与类型转换<br/> 6.10.3 密封接口<br/> 6.10.4 密封类与switch模式匹配<br/> 6.11 Java 17引入的Record类<br/> 6.11.1 Record类入门<br/> 6.11.2 Record类的构造器<br/> 6.11.3 局部Record类<br/> 6.12 对象与垃圾回收<br/> 6.12.1 对象在内存中的状态<br/> 6.12.2 强制垃圾回收<br/> 6.12.3 finalize方法<br/> 6.12.4 对象的软引用、弱引用和虚引用<br/> 6.13 修饰符的适用范围<br/> 6.14 多版本JAR包<br/> 6.14.1 jar命令详解<br/> 6.14.2 创建可执行的JAR包<br/> 6.14.3 关于JAR包的技巧<br/> 6.15 本章小结<br/> 本章练习<br/> 第7章 Java基础类库<br/> 7.1 与用户互动<br/> 7.1.1 运行Java程序的参数<br/> 7.1.2 使用Scanner获取键盘输入<br/> 7.2 系统相关类<br/> 7.2.1 Java 17增强的System类<br/> 7.2.2 Runtime类与ProcessHandle<br/> 7.3 常用类<br/> 7.3.1 Object类<br/> 7.3.2 操作对象的Objects工具类<br/> 7.3.3 使用Optional操作可空值<br/> 7.3.4 String、StringBuffer和StringBuilder类<br/> 7.3.5 Math类<br/> 7.3.6 ThreadLocalRandom与Random<br/> 7.3.7 BigDecimal类<br/> 7.4 日期、时间类<br/> 7.4.1 Date类<br/> 7.4.2 Calendar类<br/> 7.4.3 Java 17增强的新式日期、时间包<br/> 7.5 正则表达式<br/> 7.5.1 创建正则表达式<br/> 7.5.2 使用正则表达式<br/> 7.6 变量处理和方法处理<br/> 7.6.1 使用MethodHandle动态调用方法<br/> 7.6.2 使用VarHandle动态操作变量<br/> 7.7 国际化与格式化<br/> 7.7.1 Java国际化的思路<br/> 7.7.2 Java支持的国家和语言<br/> 7.7.3 完成程序国际化<br/> 7.7.4 使用MessageFormat处理包含占位符的字符串<br/> 7.7.5 使用类文件代替资源文件<br/> 7.7.6 Java的新式日志API<br/> 7.7.7 Java 17增强的NumberFormat<br/> 7.7.8 使用JDK 17新增的HexFormat处理十六进制数<br/> 7.7.9 使用DateFormat格式化日期、时间<br/> 7.7.10 使用SimpleDateFormat格式化日期<br/> 7.8 Java 17增强的日期、时间格式器<br/> 7.8.1 使用DateTimeFormatter完成格式化<br/> 7.8.2 使用DateTimeFormatter解析字符串<br/> 7.9 本章小结<br/> 本章练习<br/> 第8章 Java集合<br/> 8.1 Java集合概述<br/> 8.2 Collection和Iterator接口<br/> 8.2.1 使用Lambda表达式遍历集合<br/> 8.2.2 使用Iterator遍历集合元素<br/> 8.2.3 使用Lambda表达式遍历Iterator<br/> 8.2.4 使用foreach循环遍历集合元素<br/> 8.2.5 使用Predicate操作集合<br/> 8.2.6 使用Stream操作集合<br/> 8.3 Set集合<br/> 8.3.1 HashSet类<br/> hashCode()方法对于HashSet是不是十分重要?<br/> 8.3.2 LinkedHashSet类<br/> 8.3.3 TreeSet类<br/> 8.3.4 EnumSet类<br/> 8.3.5 各Set实现类的性能分析<br/> 8.4 List集合<br/> 8.4.1 改进的List接口和ListIterator接口<br/> 8.4.2 ArrayList和Vector实现类<br/> 8.4.3 固定长度的List<br/> 8.5 Queue集合<br/> 8.5.1 PriorityQueue实现类<br/> 8.5.2 Deque接口与ArrayDeque实现类<br/> 8.5.3 LinkedList实现类<br/> 8.5.4 各种线性表的性能分析<br/> 8.6 Map集合<br/> 8.6.1 与Lambda表达式相关的Map方法<br/> 8.6.2 改进的HashMap和Hashtable实现类<br/> 8.6.3 LinkedHashMap实现类<br/> 8.6.4 使用Properties读/写属性文件<br/> 8.6.5 Java 17增强的TreeMap实现类<br/> 8.6.6 WeakHashMap实现类<br/> 8.6.7 IdentityHashMap实现类<br/> 8.6.8 EnumMap实现类<br/> 8.6.9 各Map实现类的性能分析<br/> 8.7 HashSet和HashMap的性能选项<br/> 8.8 操作集合的工具类:Collections<br/> 8.8.1 排序操作<br/> 8.8.2 查找、替换操作<br/> 8.8.3 同步控制<br/> 8.8.4 设置不可变集合<br/> 8.8.5 新式的不可变集合<br/> 8.9 烦琐的接口:Enumeration<br/> 8.10 本章小结<br/> 本章练习<br/> 第9章 泛型<br/> 9.1 泛型入门<br/> 9.1.1 在编译时不检查类型导致的异常<br/> 9.1.2 使用泛型<br/> 9.1.3 “菱形”语法<br/> 9.2 深入泛型<br/> 9.2.1 定义泛型接口、泛型类<br/> 9.2.2 从泛型类派生子类<br/> 9.2.3 并不存在泛型类<br/> 9.3 类型通配符<br/> 9.3.1 使用类型通配符<br/> 9.3.2 设定类型通配符的上限<br/> 9.3.3 设定类型通配符的下限<br/> 9.3.4 设定泛型形参的上限<br/> 9.4 泛型方法<br/> 9.4.1 定义泛型方法<br/> 9.4.2 泛型方法和类型通配符的区别<br/> 9.4.3 “菱形”语法与泛型构造器<br/> 9.4.4 泛型方法与方法重载<br/> 9.4.5 类型推断<br/> 9.5 擦除和转换<br/> 9.6 泛型与数组<br/> 9.7 本章小结<br/> 第10章 异常处理<br/> 10.1 异常概述<br/> 10.2 异常处理机制<br/> 10.2.1 使用try...catch捕捉异常<br/> 10.2.2 异常类的继承体系<br/> 10.2.3 多异常捕捉<br/> 10.2.4 访问异常信息<br/> 10.2.5 使用finally回收资源<br/> 10.2.6 异常处理的嵌套<br/> 10.2.7 自动关闭资源的try语句<br/> 10.3 Checked异常和Runtime异常体系<br/> 10.3.1 使用throws声明抛出异常<br/> 10.3.2 方法重写时声明抛出异常的限制<br/> 10.4 使用throw抛出异常<br/> 10.4.1 抛出异常<br/> 10.4.2 自定义异常类<br/> 10.4.3 catch和throw同时使用<br/> 10.4.4 使用throw语句抛出异常<br/> 10.4.5 异常链<br/> 10.5 Java的异常跟踪栈<br/> 10.6 异常处理规则<br/> 10.6.1 不要过度使用异常<br/> 10.6.2 不要使用过于庞大的try块<br/> 10.6.3 避免使用Catch All语句<br/> 10.6.4 不要忽略捕捉到的异常<br/> 10.7 本章小结<br/> 本章练习<br/> 第11章 AWT编程<br/> 11.1 GUI和AWT<br/> 11.2 AWT容器<br/> 11.3 布局管理器<br/> 11.3.1 FlowLayout布局管理器<br/> 11.3.2 BorderLayout布局管理器<br/> BorderLayout最多只能放置5个组件吗?那它也太不实用了吧?<br/> 11.3.3 GridLayout布局管理器<br/> 11.3.4 GridBagLayout布局管理器<br/> 11.3.5 CardLayout布局管理器<br/> 11.3.6 绝对定位<br/> 11.3.7 BoxLayout布局管理器<br/> 图11.15和图11.16显示的所有按钮都紧挨在一起,如果希望像FlowLayout、GridLayout等布局管理器那样指定组件的间距应该怎么办?<br/> 11.4 AWT常用组件<br/> 11.4.1 基本组件<br/> 11.4.2 对话框<br/> 11.5 事件处理<br/> 11.5.1 Java事件模型的流程<br/> 11.5.2 事件和事件监听器<br/> 11.5.3 事件适配器<br/> 11.5.4 使用内部类实现事件监听器<br/> 11.5.5 使用外部类实现事件监听器<br/> 11.5.6 类本身作为事件监听器类<br/> 11.5.7 使用匿名内部类或Lambda表达式实现事件监听器<br/> 11.6 AWT菜单<br/> 11.6.1 菜单条、菜单和菜单项<br/> 11.6.2 右键菜单<br/> 为什么即使没有给多行文本域编写右键菜单,但是当我在多行文本域上单击右键时也一样会弹出右键菜单?<br/> 11.7 在AWT中绘图<br/> 11.7.1 画图的实现原理<br/> 11.7.2 使用Graphics类<br/> 11.8 处理位图<br/> 11.8.1 Image抽象类和BufferedImage实现类<br/> 11.8.2 使用ImageIO读/写位图<br/> 11.9 剪贴板<br/> 11.9.1 数据传递的类和接口<br/> 11.9.2 传递文本<br/> 11.9.3 使用系统剪贴板传递图像<br/> 11.9.4 使用本地剪贴板传递对象引用<br/> 11.9.5 通过系统剪贴板传递Java对象<br/> 11.10 拖放功能<br/> 11.10.1 拖放目标<br/> 11.10.2 拖放源<br/> 11.11 本章小结<br/> 本章练习<br/> · · · · · · (收起) 

版权声明


相关文章:

  • android与 java开发视频教程2026-02-16 16:42:03
  • java mq 教程2026-02-16 16:42:03
  • java功能教程2026-02-16 16:42:03
  • java基础教程2492026-02-16 16:42:03
  • java标签编写教程2026-02-16 16:42:03
  • 新手学java视频教程2026-02-16 16:42:03
  • java程序设计教程 雍俊海 课后答案2026-02-16 16:42:03
  • java 并发编程实战 教程2026-02-16 16:42:03
  • java内存缓存教程2026-02-16 16:42:03
  • java教程训练2026-02-16 16:42:03