Skip to content

Latest commit

 

History

304 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Evolution

build links license: MIT

java-evolution is a practical Java reference project covering features introduced from Java 1 through Java 26. It uses small plain-Java examples, focused JUnit tests, and JavaDoc to explain what changed, why it matters, and how the APIs are used.

Why This Exists

Java keeps evolving, while everyday work can settle into older habits. This repository makes that evolution concrete through readable examples and tests suitable for study and interview preparation.

Requirements

  • JDK 26
  • Maven 3.9+
  • GNU Make for repository-level convenience targets
  • Node.js for documentation audits
  • lychee for Markdown and HTML link checks

See Platform Setup for platform-specific JDK helpers and optional-tool details.

Quick Start

On macOS, select JDK 26 for the current terminal session, then verify Java and Maven:

source scripts/use-java-26-mac.sh
mvn --version

Use the Linux or Windows helper described in Platform Setup on other platforms.

Run the main checks:

make check

Useful targets:

make test
make links
make demos
make docs
make docs-check
make release-check

The generated JavaDoc is written to target/site/apidocs/index.html and is published at the JavaDoc site.

Project Model

This is intentionally a single-module Maven project. The java01 through java26 packages are learning chapters, not separate libraries or deployable artifacts. One Maven project provides a single source tree, test suite, JavaDoc site, dependency configuration, and build model.

Maven owns compilation, testing, and JavaDoc generation. The Makefile does not replace Maven; it combines Maven with JDK checks, documentation audits, link checking, focused demo groups, and release validation.

The project uses one Java release for the build: 26. Each package still teaches features from its historical release. Feature maturity and repository representation are separate concerns: a feature may be final while its repository representation remains a Notes class or explanatory module when a small portable example would be misleading or impractical.

Coverage

Documentation

Study Workflow

Start with the package for the Java version you want to review. Read its version README, then the example class and matching test. The Study Guide provides a broader sequence.

To run one example, use its test class. For example:

mvn -Dtest=StreamExamplesTest test
mvn -Dtest=VirtualThreadsExamplesTest test
mvn -Dtest=ScopedValuesExamplesTest test

Use the Feature Map to find the class and test for a specific topic.

Official References

Java 1 through Java 7 predate the modern OpenJDK release pages and JEP process, so their entries use historical release notes, specifications, and API documentation. Java 8 through Java 26 use the JEP process and OpenJDK release references where available. All historical and official links are organized in the JEP Index and Java Release Timeline.

Contact

License

  • MIT License
  • Copyright (c) 2026 Rod Oliveira
  • See LICENSE

About

Didactic Java evolution reference with tested examples for features introduced from Java 1 through Java 26.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages