V tomto článku sa pozrieme na zmeny, ktoré priniesla Java 19.
Virtuálne vlákna
Virtuálne vlákna sú súčasťou projektu Loom a vo verzii 19 sú ako preview, ktorého cieľom je zjednodušiť súbežné programovanie v jazyku Java. Tradičné vlákna, ktoré sú vláknami operačného systému, sú náročné na zdroje a môžu obmedzovať škálovateľnosť. Virtuálne vlákna sú naproti tomu ľahké, spravuje ich runtime jazyka Java a sú navrhnuté tak, aby mali malú pamäťovú stopu. Umožňujú písať jednoduchší, škálovateľnejší súbežný kód bez zložitosti a réžie správy veľkého počtu vlákien operačného systému. Toľko k poučke a teraz sa pozrime na príklady.
Thread.startVirtualThread(() -> {
System.out.println("Hello from a virtual thread!");
});
Record patterns
Record patterns boli predstavené v Java 14 a vysvetlili sme si to v predošlých článkoch. Od verzie 19 sú vylepšené o pattern matching.
Máš record Shape
record Shape(String type) {}
Vytvoríš si shape typu Rectangle:
var shape = new Shape("Rectangle");
Tento kúsok kódu zabezpečí, že s je Shape a vytiahneme z neho type, ktorý vieme následne používať v kóde:
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";
};
Vieme použiť aj 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);
}