V tomto článku se podíváme na změny, které přinesla Java 19.
Virtuální vlákna
Virtuální vlákna jsou součástí projektu Loom a ve verzi 19 jsou jako preview, jehož cílem je zjednodušit souběžné programování v jazyce Java. Tradiční vlákna, která jsou vlákny operačního systému, jsou náročná na zdroje a mohou omezovat škálovatelnost. Virtuální vlákna jsou naproti tomu lehká, spravuje je runtime jazyka Java a jsou navržena tak, aby měla malou paměťovou stopu. Umožňují psát jednodušší, škálovatelnější souběžný kód bez složitosti a režie správy velkého počtu vláken operačního systému. Tolik k poučce a teď se podívejme na příklady.
Thread.startVirtualThread(() -> {
System.out.println("Hello from a virtual thread!");
});
Record patterns
Record patterns byly představeny v Java 14 a vysvětlili jsme si to v předchozích článcích. Od verze 19 jsou vylepšeny o pattern matching.
Máš record Shape
record Shape(String type) {}
Vytvoříš si shape typu Rectangle:
var shape = new Shape("Rectangle");
Tento kousek kódu zajistí, že s je Shape a vytáhneme z něj typu, který umíme následně používat v kódu:
if (shape instanceof Shape(String typeOfShape)) {
System.out.println("Shape is of type " + typeOfShape);
}
S použitím switch:
String description = switch (shape) {
case Shape(String type) -> "Shape type: " + type;
default -> "Unknown shape";
};
Umíme použít i takzvané nested record patterns:
var employee = new Employee("Bob", new Address("New York", "USA"));
if (employee instanceof Employee(String name, Address(String city, String country))) {
System.out.println(name + " lives in " + city + ", " + country);
}