跳转到正文
← 返回学习板块
Java 实习自学 · 设备运维工单平台

资料索引与排错手册

按阶段查官方资料、核对工具版本,按层排查编译与运行问题。

完整学习目录 · 14 篇
本篇目录

这份索引用来在自学时快速找到当前任务需要的材料。一次只打开当前主题的章节,优先用项目中的小实验验证理解。入口于2026年10月12日核对;外部网站内容和版本可能继续更新,正文练习不依赖付费课程。

按阶段选择资料 #

编号资料什么时候读什么
R01Dev.java 学习入口第1—3周读对象、集合、异常;第14周再读线程主题。英文概念先与本包中文解释对照
R02Pro Git 中文版第1周看起步与Git基础;先学status、diff、add、commit、log,后面再学分支
R03Maven 入门第3周看pom、标准目录、compile/test/package;不先研究自定义插件
R04MySQL 教程第4—5周看连接、建表、查询、多表与聚合;完成自己的SQL而不是通读整本手册
R05Connector/J 兼容说明第6周连接前核对JDK、数据库服务端与驱动版本,不把动态最新驱动当作旧服务器必然兼容
R06Spring REST 入门第7周观察请求参数如何变成JSON响应,再改成工单接口
R07Spring Boot 系统要求创建Web项目时核对正式版本、Java和构建工具要求
R08MyBatis Spring Boot Starter第8周看兼容表、Mapper、配置与XML示例
R09Spring Security 用户名密码认证第12周理解框架认证、UserDetailsService和密码编码
R10Spring Security CSRF第12周按页面形态处理token,并理解登录后刷新token
R11Spring Boot 测试第15周使用当前Boot版本配套的测试组件,确认测试职责
R12Docker Compose 入门第17周再学服务、网络、数据卷;容器化之前先让jar能启动
R13Hello 算法每周基础时间阅读对应数据结构,选择Java示例;不必追求一次读完

资料网站提供阅读入口。需要离线时,使用网站自身提供的下载入口或浏览器保存所需页面;保留出处,不把下载材料当作自己原创内容。此包已包含中文任务解释和自测答案,但没有内嵌第三方整本书或视频。

环境清单 #

阶段必须具备先怎样确认
第1周JDK、编辑器或IDE编译运行一个只有main的类;不要用运行README判断Java环境
第3周Java21、Git、Mavenjava -version、javac -version、git --version、mvn -v,Java路径一致
第4周可连接的MySQL练习库客户端能执行SELECT VERSION();;能创建和查询自己练习库的表
第7周Web项目依赖和空闲端口先启动最小接口,再接数据库与页面
第12周三角色演示账号密码由框架编码;测试账号只用于本地练习
第17周可运行jar的环境本机/本地Linux均可;Docker与云主机不是第一阶段前置条件

工具下载从Temurin JDK、Maven、Git与MySQL各自入口选择。已有可用工具先复用,不重复安装多个版本。教学不要求购买IDE;是否支持某个便捷界面不会改变Java命令行构建的原理。

IDEA中的项目SDK、终端PATH和Maven使用的Java可能不同。终端显示Java8而项目配置写Java21时,先找到实际安装路径,并让本项目明确使用Java21。确认配置后重开终端再检查,不要仅修改语言级别就认为JDK已经切换。

固定版本的方法 #

在项目README记录Java、Maven、Spring Boot、MyBatis Starter、MySQL服务端和Connector/J版本。Web计划使用Java21、Boot4.1系列和MyBatis Starter4.0系列;以兼容表为依据。只使用正式版本,学习期间不因“出现新版本”频繁升级。

Spring Boot管理的依赖优先跟随其依赖管理清单。若使用本机MySQL8.0练习,仍须核对被选中的驱动能否连接8.0;使用较新驱动不能自动推导为旧服务端兼容。课程JDBC阶段若指定驱动版本,按该阶段说明核对;进入Web阶段再检查实际依赖树。升级另建练习环境,不直接替换其他项目的数据库。

排错顺序 #

先记下“在哪一步失败”:编辑/编译、程序启动、收到请求、执行SQL、浏览器展示。按层检查比同时改很多配置有效。

现象优先检查最小验证
没有Java Class创建选项src是否被识别为源码目录;项目SDK是否设置在源码目录新建普通类,确认能够编译
找不到或无法加载主类类名、包名、编译输出目录、classpath先运行只有main的TicketDemo
release version 21 not supportedMaven实际使用的JDK对比java -version与mvn -v中的Java版本
UnsupportedClassVersionError编译版本高于运行版本用同一个Java21编译、运行
Maven无法下载依赖网络、仓库响应、版本是否存在、错误日志先重试一个最小项目;不要随意复制来历不明的仓库配置
文件找不到运行工作目录与实际Path打印path.toAbsolutePath(),确认目标文件
中文乱码源文件、读写流、终端的编码UTF-8写一行再UTF-8读回,分开判断文件与显示问题
加载后数据翻倍是否向同一列表重复追加用两条记录连续加载两次,观察列表长度
数据库连接被拒绝服务是否启动、主机、端口、网络数据库客户端用相同主机端口连接
Access denied用户名、密码、来源主机及权限用同一账户在客户端连接,不在日志打印密码
表或列不存在当前数据库、建表脚本、命名SELECT DATABASE();与SHOW CREATE TABLE ticket;
MyBatis查到但字段为空列名与属性映射、构造方式、getter只查id和title两列,确认resultMap或映射策略
Mapper重复注册扫描范围、多个配置、重复Bean保留一种明确的扫描方式,阅读启动错误中的Bean名
404请求路径、方法、Controller扫描包对照启动映射和最小GET接口
400JSON格式、Content-Type、字段类型与校验发送文档中的最小合法JSON
401是否登录、Cookie是否随请求发送查看登录响应和下一次请求的Cookie
403权限是否允许、CSRF是否缺失/过期GET与POST分开试;检查token与Cookie,不直接关闭防护
页面能看到按钮但接口拒绝前端展示不代表服务端授权在HTTP客户端复现,按用户身份检查规则
事务没有回滚调用是否经Spring代理、是否吞掉异常、多个写操作是否共用事务在日志写入前故意抛运行时异常,仅在练习库检查两处均未提交
两次派单都成功SQL是否含状态/版本条件,是否检查影响行数从相同初始版本分别发送请求并检查最终记录
端口占用旧程序仍在运行或配置冲突找到自己的旧实例正常停止,或给练习实例换端口
关闭程序后数据没了是否仍在用内存实现或容器临时层确认实际连接的库与持久化位置,重启前后查询同一库

不要用删除数据库、删除数据卷、关闭权限校验或把所有异常忽略作为通用修复手段。先保留复现证据,确认错误原因后只修改必要部分。

看答案后仍不理解 #

把解释拆成三句话:输入是什么、这一行改变了什么、输出或异常是什么。用两个不同的输入手工执行一遍。比如构造器调用校验方法,是让创建与修改遵守相同规则;private本身不会判断数值范围。

每次看完参考代码,关闭它并改变一项需求:标题上限、筛选条件、状态操作或查询字段。能根据变化调整实现,才算从复制过渡到理解。

← 浏览全部课程回到顶部 ↑