แแแแแถแแแแธแแแแแแแแแแถแแแฝแแแแแแแถแแขแแทแแแแแแ Oracle แแถแแ แแแแแแถแแแแแทแแถ Java SE 20 (Java Platform, Standard Edition 20) แแแแแแแพแแแแถแแแแแแแแแแแแแแแพแแ แแ OpenJDK แแถแแถแแขแแปแแแแแแแแ แแถแแฝแแแนแแแแแธแแพแแแแแแแแถแแแแ แแแแผแแแแแแแแแทแแแแแฝแแ แแแฝแแแแแแถแแแแทแแแแแแ Java SE 20 แแแแแถแแถแแแแแแแถแแแแแแแแแถแแฝแแแนแแแถแแ แแแแแแถแแแธแแปแแแแแแแทแแถ Javaโแแแแแแ Java แแแแแถแแแแแแแแธแแปแแแถแแ แแแพแแแนแแแ แแแแแแพแแแถแแแแแแแแถแแแถแแแแแแแแแ แแแแแแแพแแแถแแแแแแแแแแแแแแธแ Java SE 20 builds แแแแขแถแ แแแกแพแแแถแ (JDK, JRE, แแทแ Server JRE) แแแแผแแแถแแแแแ แแแแแแถแแ Linux (x86_64, AArch64), Windows (x86_64) แแทแ macOS (x86_64, AArch64)แ แแแแแพแแกแพแแแแแแแแแแ OpenJDK แแถแแขแแปแแแแแแแ แแแแธแแแ Java 20 แแแแผแแแถแแแพแแแแถแแแแแแแแแแแแแขแถแแแแถแแแแแ GPLv2 แแถแแฝแแแนแแแแแธแแพแแแแ GNU ClassPath แแพแแแแธแขแแปแแแแถแแฑแแแแถแแแแแถแแแแแแแแถแแแแแแแ แแนแแแแทแแแแแถแแทแแแแแแแแ
Java SE 20 แแแแผแโแแถแโแ แถแแโแแแแถแแโแแถโแแถแโแ แแโแแแแถแโแแถแโแแถแแแแโแแถโแแแแ แถแ แ แพแโแแนแโแแแแโแแแฝแโแแถแโแแถแโแขแถแแแแแโแแ แผแโแแแโแแถแโแ แแโแแแแถแโแแพแโแแแแแแ แแถแแถแแถแแแแแแแแแแแแแ (LTS) แแฝแแแแแถ Java SE 17 แแแแแนแแแแแแแแฝแแแถแแแถแแขแถแแแแแแแ แผแแแแแแแแถแ 2029แ แขแแปแแแแถแแฑแแแแพแแแแแนแแขแแแแแถแแถแแ แถแแแแแแพแแแถแแฝแแแนแแแถแแ แแแแแแถแแแ Java 10 แแแแแแแแแแแถแแแแแผแแแ แแแแพแแแถแแขแแทแแแแแแแแแแธแแแแแแแ แถแแแธแแแแแแแแธแแแแแถแแแแถแแแแแแพแแแถแแ แแแแแแถแแแแแธแ แแปแแแถแแแแแธแฅแกแผแแแแแแแแผแแแถแแแแแแพแแกแพแแแ แแแแปแแแถแแถแแแแแแแถแแแแแพแแ แแ แปแแแแแแแแถแแฅแแแแแแ แแแแแฝแแแแแ แผแแแถแแแแแถแแแแแแผแแแแแแแแแแแฝแ แแถแแแแแ แแทแแแธแแถแแถแแถแแแแแแแผแแแถแแแแแแแแถแแแแแถแแแแแแถแแแฝแแแแแแแ แแพแแแแธแแแแแถแแแแแแแถแแแแแถแแ แแแแแแถแแแแแธแ
แแแแแแแแทแแแแแแแธแแ แแแแปแ Java 20 แแฝแแแถแ:
- แแถแแแถแแแถแแแแแแแแแแแแถแแ Scoped Values โโแแแแขแแปแแแแถแแฑแแแ แแแแแแแแแทแแแแแแแแแแแทแแขแถแ แแแแถแแแแแแผแแแถแแแ แแผแแถแแแแแแแแแแกแถแ แแทแแแทแแแแแแแแแแแแแถแแแแแแผแแแแแแแแแแแแแแทแแแแแถแแแแถแแแแแแแแแกแถแแแปแแถแ (แแแแแแแแแผแแแถแแแแฝแแแแแ)แ แแแแแแแแแแถแแแทแแถแแแถแแแแแปแแแแแผแแแถแแแแแแพแแกแพแแแพแแแแธแแแแฝแแแแแแแถแแขแแแแแแแแแแแแแกแถแ-แแผแแแแแถแ แ แพแแแถแแแแแแทแแแแแถแแแถแแแ แแแแแแแพแ แแแฝแแแแแแแแแแแแแแแกแถแแแทแแแแทแ (แแถแแแแถแแ แฌแแถแแแแถแแแแแแแแแแแกแถแ)แ แแถแแแปแแแแแถแแแแถแแแแแถแ Scoped Values โโแแทแแขแแแ thread-local แแบแแถแขแแธแแแแแผแแแถแแแแแแแแแแ แแทแแขแถแ แแแแถแแแแแแผแแแถแแแ แแแแขแแถแแ แ แพแแแ แแแแถแแแแแแถแแแแแแแแแแแแแแถแแแแแแทแแแแแทแแแแ thread แแแปแแแแแแ class Server { แแทแแทแแแแ ScopedValue แ แปแแแแแแ CURRENT_USER = new ScopedValue(); แแแแถแ แถแแแแปแแแถแแแแ(แแแแพแแแแพ แแถแแแแแพแแแแแแแพแแแ) { แแแแแทแ var = (แแแแพแ isAuthorized()? ADMIN : GUEST); var user = แขแแแแแแแพแแแแถแแแแแแธ(แแแแแทแ); ScopedValue.where(CURRENT_USER, user).run(() -> Application.handle(request, response)); } } แแแแถแแ DatabaseManager { DBConnection open() { var user = Server.CURRENT_USER.get(); แแแแแทแแแพ (!user.canOpen()) แแแ InvalidUserException(); แแแแกแแ DBConnection แแแแธ (... ); } }
- แแถแแแพแแแถแแปแแแธแแธแแแแแแแถแแแแแแแแแแถแแแแผแแแถแแแแแแแ แแแแแแแแธแแแปแแแถแแแแแผแแแแแแแแถแแแแแแถแแแแแถแแแ แแแแปแ Java 16 แแพแแแแธแแแแแแแแแแแแแแถแแแแแแแแแแแถแ แงแแถแ แแแแ record Point(int x, int y) {} static void printSum(Object obj) { if (obj instanceof Point p) { int x = px(); int y = py(); System.out.println(x+y); } }
- แแถแแขแแปแแแแแแแแแธแแฝแแแแแถแแแแแผแแแแแแแแถแแแ แแแแปแแแแ แแแแธแแแแแแแถแแแ "แแแแผแ" แแแแผแแแถแแแแแแแ แแแแขแแปแแแแถแแฑแแแแแแถแ "แแแแธ" แแแแพแแทแแแถแแแแแแแแทแแแแแถแแ แแแปแแแแแแแแผแแแแขแถแ แแแแแแแแถแแแแแแแแแแแแแแแแแแแธแแแแแแแแแแแปแแแแแแแแฝแ แแแแแธแแปแแแถแ แถแแแถแ แแแแแปแแแถแแแแแพแแแแถแแแแแแปแแแแแถแแ แแแแแแแแแถแแแแแแแแแแ "แแแแแทแแแพ ... แแแแแแแแ" แ static String formatterPatternSwitch(Object obj) { return switch (obj) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); แแแแธ Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); แแแแถแแแพแ -> o.toString(); }; }
- แแถแแขแแปแแแแแแแแแธแแธแแแ FFM (Foreign Function & Memory) API แแแแผแแแถแแแแแแแ แแแแขแแปแแแแถแแฑแแแขแแแแแแแ แแขแแแแแแแแแแแแแแแแทแแธ Java แแถแแฝแแแนแแแผแแแถแแแแแ แแทแแแทแแแแแแแแถแแแแแแถแแ แ แแปแแแถแแแธแแแแแถแแแแแถแแแแแ แแทแแแถแแ แผแแแแแพแขแแแแ แแ แถแแแถแแแแแ JVM แ
- แแถแแแพแแแถแแปแแแพแแแธแแธแแแแแแแแแแแกแถแแแทแแแแทแแแแแผแแแถแแแแแแแ แแแแแถแแแแแแแแแถแแแแแแแแแแแถแ แแแแแฝแแแแแแฝแแแถแแแแแแ แแทแแแแแแถแแถแแแผแแแแแแแทแแธแแ แปแแแแแแแแกแถแแแแแแถแแแแแแทแแแแแถแแแแแแแ
- แแถแแแแแแแ API แแทแแแแแแแธแแธแแแแแแถแแแแถแแแแแแแแแถแแแแแถแแแ แแถแแแแแแแแ แแแแแฝแแแแแแฝแแแแแแถแแขแแทแแแแแแแแแแแแแแทแแธแแ แปแแแแ แแแแแถแแแแแถแแถแแแทแ แแ แแถแแแถแ แแแพแแแแแแแแปแแแแแพแแแถแแแแแปแแแแแแแแแกแถแแแแแแแแแแแถแแถแแแแปแแแแแฝแแ
- แแถแแแพแแแถแแปแแแธแแแแถแแแ Vector API แแแแผแแแถแแแแแแแ แแแแแแแแแแผแแแปแแแถแแแแแแถแแแแถแแแแแถแแแทแ แแแแแแแแแแผแแแถแแขแแปแแแแแแแแแแแพแแถแแแแแถแแแแทแ แแแแแ แแพแแแแแแแแแแแแพแแแถแ x86_64 แแทแ AArch64 แ แพแแขแแปแแแแถแแฑแแแแแแแทแแแแแทแแถแแแแแผแแแถแแขแแปแแแแแแแแปแแแแแแแแถแแแแแถแ แแแแแแแแแแ แแแพแ (SIMD)แ แแทแแแผแ แแแแแแแถแแแแแแถแแแแแแแแ แแแแปแแแแแแแทแแธแ แแแแแ HotSpot JIT แแแแแถแแแแถแแแแแพแแทแแแแแแแแแแแแแแแแแแแแทแแแแแแแทแแแแแทแแถแแแถแแแแแแแถแ API แแแแธแแแแพแฑแแแแถแขแถแ แแแแแแแแแแแแทแ แแแแแแถแแ แแแถแแแแถแแแแแแแถแแแแแแพแแแถแแแทแแแแแแแแแแแแแแถแ
แแแแแ: opennet.ru