Files
javademos/jdk28-preview/README.md
T

22 lines
1.2 KiB
Markdown

# jdk28-preview
Companion module for the ankurm.com post *What's Coming in JDK 28: Value Classes Preview and Strict Field Initialization*.
Runs small programs on an **early-access** OpenJDK 28 build (`28-ea+17`, downloaded from jdk.java.net/28) and on JDK 25.0.4.1 for comparison. Early-access builds change weekly, and JEP status changes with them, so treat every transcript as a snapshot and rerun `scripts/run-all.sh` against a newer build.
```bash
export JDK28=/path/to/jdk-28-ea JDK25=/path/to/jdk-25
./scripts/run-all.sh
```
| Output | Shows |
|---|---|
| `00-environment.txt` | The exact builds used |
| `01-value-classes.txt` | JEP 401: `==` on value records, `Integer` identity, synchronizing on a value object |
| `02-forgot-the-preview-flag.txt` | The two errors you get without `--enable-preview` |
| `03-strict-init-flags.txt` | JEP 539: the `ACC_STRICT_INIT` field flag, value class vs identity class |
| `04-pem-encodings.txt` | JEP 542: `PEMEncoder`/`PEMDecoder` on 28 (no flag) and 25 (preview) |
| `05-json-incubator.txt` | JEP 540: `jdk.incubator.json` |
| `06-shenandoah.txt` | JEP 535 could not be tested on this build (see file) |
| `07-jep-status.txt` | Published JEP status, quoted (not run) |