1
Uitbreidingen betreffende leesbaarheid en bondigheid van taal
- Enkele syntaxisuitbreidingen van de taal (Java 5, 7, 9).
- Standaardmethoden (Java 8).
Praktisch werk
Numerieke constanten weergeven (Java 7, 8).
2
Praktisch werk
Praktisch werk
Uitbreidingen voor taaltypen
3
Autoboxing/unboxing (Java 5).
- Generiek (Java 5, 7).
- Opgesomde types (Java 5).
- Type-inferentie.
Praktisch werk
Omgaan met en gebruik maken van generieke types en diverse andere types.
4
Uitbreidingen betreffende metaprogrammeren
- Annotaties (Java 5, 8).
- Meta-annotaties (Java 5, 8).
5
De introductie van functioneel programmeren
- Functionele interfaces (Java 8).
- Vooraf gedefinieerde functionele interfacebibliotheken (Java 8).
- Lambda-uitdrukkingen (Java 8).
- Java 8-streams (Java 8).
Praktisch werk
6
De introductie van modulariteit
- Modules (Java 9, 11).
- Toegankelijkheid vs. leesbaarheid.
- De evolutie van het laden van klassen (Java 5, 9).
- Modules maken in plaats van jars: algemeen principe, voordelen.
Praktisch werk
7
Draad model uitbreidingen
- De introductie van Callable<T>, Future<T> en ExecutorService (Java 5, 8).
- Het fork/join-model (Java 7, 8).
- De nieuwe synchronisatieklassen (Java 5, 7, 8).
8
De evolutie van de JVM
- De compilatie.
- De vuilnisman.
- Klassen laden.
- Verbeterd stringbeheer in de JVM (Java 9).