上午:前端课程 (HTML / CSS / JavaScript)
1. HTML 与 DOM 操作
- 基础结构:HTML 作为网页骨架,常用标签包括标题、段落、链接和图片等。
- DIV 通用性:演示了 DIV 标签结合样式和事件可替代其他所有标签,是开发中最核心的元素。
2. CSS 样式与布局
- 选择器应用:讲解了类选择器、ID 选择器及属性选择器的用法,并通过自定义变量实现了主题色切换。
- 盒子模型:详细解析了由内容(Content)、内边距(Padding)、边框(Border)和外边距(Margin)组成的矩形盒子结构。
- Flex 布局:介绍了 Flex 布局的基本属性,如使用
justify-content控制元素排列。
3. JavaScript (ES6) 核心特性
- 变量声明:推荐使用
const和let替代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):通过
sealed和permits关键字精确控制类的继承结构,增强领域模型的安全性和可维护性。 - 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关键字。 - 三大特性:封装、继承、多态。
- 进阶对比:对比抽象类与接口的区别;介绍
static、final关键字的作用及 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(丢弃最老任务)。 |