验收权重
能手写一个固定大小线程池;能说明 synchronized 与 Lock 的差异40%
核心功能可独立跑通,无阻断性 bug25%
关键路径有测试或可复现的验收脚本15%
README 写清运行方式、架构与踩坑10%
能在 5 分钟内讲清设计与取舍10%
总分 100。低于 60 分说明这个阶段还没过,回去补知识点,不丢人。
项目背景
这是「Java」路径第 2 阶段(阶段二 · 语言进阶)的验收项目。本阶段目标是:理解 JVM 与并发,能写出线程安全的代码。项目不是练习题的堆砌,而是把这一阶段的知识点压缩成一个能演示、能讲清楚取舍的成品。
MVP 目标
- 理解 JVM 与并发,能写出线程安全的代码
- 做出可运行、可演示的「多线程下载器」
- 把 泛型与反射、IO / NIO、多线程与线程池 真正用进项目,而不是停在笔记里
功能需求清单
5 项必做 · 1 项建议- 1分块下载必做
用 HTTP Range 分块下载大文件,块大小可配置。
- 2断点续传必做
记录每块进度到进度文件,中断后从已完成块继续。
- 3线程池并发必做
线程数可配置;下载完成后正确关闭线程池,无线程泄漏。
- 4进度回调与取消必做
实时输出总进度;支持主动取消并保存已完成部分。
- 5完整性校验必做
对比文件大小或 SHA-256,校验失败给出提示。
- 6测试或验收脚本建议
对分块计算、进度合并写单元测试。
技术约束
泛型与反射IO / NIO多线程与线程池JVM 内存结构与 GC 基础Lambda 与 Stream
交付物
- Git 仓库(含分阶段提交记录,不是最后一次性上传)
- README:项目简介、架构/流程图、运行方式、已知限制
- 演示材料:截图,或 1–2 分钟录屏
- 复盘:做错的 3 个决定与改进方案
加分项
- 下载限速
- 多任务队列
- Swing/JavaFX 进度界面
最容易翻车的地方
- 共享进度变量不加锁导致数据错乱
- 忽略服务器不支持 Range(206)的情况
- 异常时线程池未关闭
做完之后,简历怎么写
「多线程下载器」:独立完成 断点续传、进度回调,使用 泛型与反射、IO / NIO、多线程与线程池;通过「能手写一个固定大小线程池」验收。
写「做了什么 + 用了什么 + 结果如何」,不要写「参与了 XX 系统」。