JAVA-SE25
New Java 22 - 25 new features
Language features
Description
Several criticisms have been raised regarding the Java language as modern languages emerge or other languages evolve. These are the following:
- Difficult to learn
- Threads are resource-intensive
- Garbage collector pauses the application for too long (latency). Moreover, this can increase with load.
- Slow startup
- Integration with native code is difficult (JNI)
- Cryptography: quantum computer-resistant algorithms
- Stream API is not extensible
- If the bytecode changes, bytecode handling libraries need to be updated
- JavaDoc documentation must be written in HTML
Solutions have been provided for all of these by Java version 25. The training presents these through practical examples.
Outline
- Foreign Function & Memory API
- Unnamed Variables & Patterns
- Launch Multi-File Source-Code Programs
- Markdown Documentation Comments
- Ahead-of-Time Class Loading & Linking, Command-Line Ergonomics, Ahead-of-Time Method Profiling
- Class-File API
- Stream Gatherers
- Synchronize Virtual Threads without Pinning
- Quantum-Resistant algorithms
- Scoped Values
- Key Derivation Function API
- Module Import Declarations
- Flexible Constructor Bodies
- Compact Object Headers
- Garbage collection
- Deprecations and removals
- Preview, Incubator
- String Templates
- Vector API
- Structured Concurrency
- Primitive Types in Patterns, instanceof, and switch
- PEM Encodings of Cryptographic Objects
- Stable Values
Prerequisites
- secure handling of development tools
- packages
- arrays
- classes
- interfaces
- abstract classes
- exception handling
- basics of concurrent programming
- Collections Framework API (List, Set, Queue, Map interfaces and their implementations)
Since part of the training materials is in English, a basic level of English is required, sufficient for reading documentation.