Start here. This is the direct spoken answer to practice first.
Overview
A Java build resolves a dependency graph, not a flat list, and the selected runtime versions may differ from the versions a developer notices first.
Maven and Gradle start from direct dependencies, follow their transitive dependencies, and build classpaths for different purposes such as compilation, testing, and runtime. When the graph requests multiple versions of the same library, the build tool applies its resolution rules to select one. Spring Boot reduces accidental combinations by publishing a tested bill of materials, so supported dependency versions can be managed together. A starter adds a useful dependency set; it does not mean every version in the graph is invisible or automatically correct.