上午:前端课程 (HTML / CSS / JavaScript)

1. HTML 与 DOM 操作

  • 基础结构:HTML 作为网页骨架,常用标签包括标题、段落、链接和图片等。
  • DIV 通用性:演示了 DIV 标签结合样式和事件可替代其他所有标签,是开发中最核心的元素。

2. CSS 样式与布局

  • 选择器应用:讲解了类选择器、ID 选择器及属性选择器的用法,并通过自定义变量实现了主题色切换。
  • 盒子模型:详细解析了由内容(Content)、内边距(Padding)、边框(Border)和外边距(Margin)组成的矩形盒子结构。
  • Flex 布局:介绍了 Flex 布局的基本属性,如使用 justify-content 控制元素排列。

3. JavaScript (ES6) 核心特性

  • 变量声明:推荐使用 constlet 替代 var,以避免变量提升机制带来的潜在 Bug。
  • 异步编程:讲解了 Promise 的状态流转及 async/await 语法,用于处理网络请求等耗时操作。
  • 新语法特性:介绍了对象解构赋值、扩展运算符(...)及三元表达式等简化代码的技巧。

下午:后端课程 (Java)

1. Java 基础与环境配置

  • 运行机制:介绍了 Java 编译为字节码、JVM 执行的机制及发展历史。
  • 版本选择:重点讲解 Java 8、17、21 的版本特性与选择建议。强调在企业开发中推荐使用 Java 8 以保证稳定性。
  • 环境操作:演示了 JDK、JRE 的区别及环境切换操作。

2. Java 版本核心新特性对比

Java 17 对比 Java 8 的核心新特性

Java 17 整合了自 Java 9 到 Java 16 的所有重要特性,堪称“集大成者”。

  • 记录类(Records):终结了传统 POJO 类的“样板代码地狱”。只需使用 record 关键字一行声明,编译器自动生成规范方法,代码量骤减约 70%。
  • 模式匹配(Pattern Matching for instanceof):告别繁琐的“先判断类型,再强制转换”。类型检查和变量绑定一步到位(如 if (obj instanceof String str)),使代码更简洁且类型安全。
  • 密封类(Sealed Classes):通过 sealedpermits 关键字精确控制类的继承结构,增强领域模型的安全性和可维护性。
  • Switch 表达式增强:升级为安全的表达式,支持箭头语法(->)直接返回值,支持多标签匹配,彻底避免穿透问题。
  • 文本块(Text Blocks):原生支持 """ 界定符,保留缩进并自动处理首尾空白,大幅提升 JSON/XML/SQL 等结构化文本的可读性。
  • 性能与底层优化:默认启用 ZGC 和 Shenandoah 等现代化垃圾回收器,实现亚毫秒级 GC 停顿;启动速度提升 30%+,内存占用降低 20%+。

Java 21 对比 Java 17 的核心新特性

Java 21 是里程碑式 LTS 版本,核心突破在于重构了并发模型和表达力。

  • 虚拟线程(Virtual Threads):Project Loom 成果,引入由 JVM 调度的轻量级用户态线程。单机可轻松创建百万级虚拟线程,彻底改变高并发编程模式,无需再为线程池调优苦恼。
  • 序列集合(Sequenced Collections):新增统一接口,提供标准化的 getFirst()getLast() 等方法,终结 API 碎片化,消除不同集合行为差异带来的误用风险。
  • 记录模式与 Switch 模式匹配:支持声明式解构,可直接在 switch 中根据对象类型和结构进行分支判断,配合 record 一行代码提取嵌套字段。
  • 字符串模板(预览特性):提供类似其他现代语言的模板字面量语法(如 STR."Greetings \{name}!"),支持编译期校验的安全插值,防止注入攻击。
  • 分代 ZGC(Generational ZGC):引入分代架构,在保持亚毫秒级停顿的前提下大幅提升吞吐量,优化云原生高并发场景下的内存管理。

3. 语法基础与代码规范

  • 基础语法:讲解 Hello World 结构、变量常量、基本数据类型(重点提及 BigDecimal 处理金额)及运算符。
  • 流程控制:强调避免多层 if-else,推荐使用策略模式Map 优化。
  • 方法与调试:阐述方法定义、重载、值传递与引用传递;介绍 IDE 调试技巧(断点、条件断点)。
  • 代码规范:强调命名规范、注释规范及异常处理。

4. 面向对象核心特性

  • 核心概念:详解类与对象、构造方法、this 关键字。
  • 三大特性:封装、继承、多态。
  • 进阶对比:对比抽象类与接口的区别;介绍 staticfinal 关键字的作用及 JVM 中静态变量的存储机制。

5. 常用 API 与集合框架

  • 字符串处理:讲解 String 的不可变性、StringBuilder/StringBuffer 的区别,以及包装类的装箱拆箱。
  • 日期时间:介绍 Java 8 新的日期时间 API(LocalDate/Time)。
  • 集合体系:深入解析 Collection 体系(List/Set)与 Map 体系的结构、特点及底层实现。
  • 其他基础:简述泛型、枚举、IO 流(try-with-resources)的基本用法。

6. 多线程基础与线程池

  • 基础概念:介绍进程与线程的概念,对比继承 Thread 与实现 Runnable 创建线程的方式。
  • 执行机制:讲解 start()run() 的区别。
  • 线程池:引入线程池概念及其资源管理优势,强调项目中应使用自定义线程池而非默认实现

️ 线程池 7 大核心构造参数

参数说明
corePoolSize核心线程数:长期保持存活的线程数量(相当于“常驻员工”)。
maximumPoolSize最大线程数:允许创建的最大线程数量(包含核心和非核心线程)。
keepAliveTime空闲线程存活时间:非核心线程空闲后的最大存活时间(相当于“临时工”)。
unit时间单位:keepAliveTime 的时间单位(如 TimeUnit.SECONDS)。
workQueue工作队列:存储等待执行任务的阻塞队列。推荐使用有界队列(如 ArrayBlockingQueue)以避免 OOM。
threadFactory线程工厂:用于创建线程。最佳实践是自定义,为线程设置有意义的名称,便于排查问题。
handler拒绝策略:队列满且线程达最大值时的处理策略。常见有:AbortPolicy(抛异常)、CallerRunsPolicy(调用者处理)、DiscardPolicy(静默丢弃)、DiscardOldestPolicy(丢弃最老任务)。