Further Resources
Official
- Java 25 documentation — language spec, tools, migration notes
- API docs — learning to search these quickly is a skill of its own
- JEP index — every language feature has a proposal explaining the why
- dev.java — tutorials from the OpenJDK team
- inside.java — blog and podcast
Java 25 features
| JEP | Topic |
|---|---|
| 512 | compact source files and instance main methods |
| 511 | module import declarations |
| 513 | flexible constructor bodies |
| 506 | scoped values |
| 505 | structured concurrency (preview) |
| 507 | primitive types in patterns (preview) |
| 502 | stable values (preview) |
Tools
- Eclipse Temurin — JDK builds
- SDKMAN! — manage several JDKs
- start.spring.io — Spring Boot project generator
- MVN Repository — find library coordinates
- Java Almanac — what changed between versions
Practice
- Exercism Java track — exercises with human feedback
- Advent of Code — great for streams and data structures
- CodingBat — many small drills
- Your own project — one CLI tool you actually use beats a hundred exercises
Books
- Effective Java (Joshua Bloch) — best practices, read it once the basics stick
- Java by Comparison — before/after snippets, ideal right after a beginner course
- Modern Java in Action — streams, lambdas, functional style
- Java Concurrency in Practice — older, but the concepts still hold
Community
- Local Java User Groups — most cities have one, talks are usually free
- Conference talks from JavaOne, Devoxx and JCon are on YouTube
- Stack Overflow — always check the date; a lot of it describes Java 8
Tip
Check the publication year of anything you read. Java changed a lot since 8 — plenty of “this is how you do it” answers are now needlessly complicated.
About this course
All code samples are public domain (CC0). Tested with OpenJDK 25. Preview features are marked
and need --enable-preview.