แแฅแแกแแแแแแ แจแแแฃแจแแแแแแก แจแแแแแ, Oracle-แแ แแแแแฃแจแแ Java SE 20 แแแแขแคแแ แแ (Java Platform, Standard Edition 20), แ แแแแแแช แฆแแ แแแแแก OpenJDK แแ แแแฅแขแก แแงแแแแแก, แ แแแแ แช แกแแชแแแแแ แ แแแแแแแแแขแแชแแแก. แแแแแแ แแ แแแซแแแแแแฃแแ แคแฃแแฅแชแแแก แแแแฆแแแแก แแแ แแ, Java SE 20 แแแแ แฉแฃแแแแก แฃแแฃแแแแกแแแแแแแแก Java แแแแขแคแแ แแแก แฌแแแ แแแ แกแแแแแแ - แแแ แ แแแฌแแ แแแ Java แแ แแแฅแขแแแแก แฃแแแขแแกแแแ แฃแชแแแแแ แแแฃแจแแแแแก แแฎแแแ แแแ แกแแแ แแฃแจแแแแแกแแก. Java SE 20-แแก แแแกแขแแแแชแแแกแแแแก แแแ แแแแแแแ (JDK, JRE แแ Server JRE) แแแแแแแแแฃแแแ... Linux (x86_64, AArch64), Windows (x86_64) แแ macOS (x86_64, AArch64). OpenJDK แแ แแแฅแขแแก แแแแ แจแแแฃแจแแแแแฃแแ, Java 20-แแก แกแแชแแแแแ แ แแแแแแแแแขแแชแแ แกแ แฃแแแ แฆแแ แแแแแกแแ GPLv2 แแแชแแแแแแ GNU ClassPath แแแแแแแแแแกแแ, แ แแแแแแช แแแแแ แชแแฃแ แแ แแแฃแฅแขแแแแแ แแแแแแแฃแ แ แแแแจแแ แแก แกแแจแฃแแแแแแก แแซแแแแ.
Java SE 20 แแแขแแแแ แแแแแฃแแแ, แ แแแแ แช แแแ แแแแฃแ แ แแฎแแ แแแญแแ แแก แแแ แแแแแ แแฆแญแฃแ แแแแ แแแ แกแแ, แ แแแแแก แแแแแฎแแแแแแแช แจแแแแแ แแแ แกแแแแแ แแแแแแ. Java SE 17 แฃแแแ แแฅแแแก แแแแแงแแแแแฃแแ, แ แแแแ แช แแ แซแแแแแแแแแ แแฎแแ แแแญแแ แแก (LTS) แแแแจแขแแแแ, แ แแแแแก แแแแแฎแแแแแแแช 2029 แฌแแแแแ แแแแแแ. แจแแแแฎแกแแแแแ, แ แแ Java 10-แแก แแแแแจแแแแแแแ แแ แแแฅแขแ แแฎแแ แแแแแแแแ แแแแก แแ แแชแแกแแ แแแแแแแแ, แ แแช แแฎแแแ แแแ แกแแแแแก แคแแ แแแ แแแแก แฃแคแ แ แแแแแ แชแแแแก แแฃแแแกแฎแแแแก. แแฎแแแ แคแฃแแฅแชแแแแแแ แแฎแแ แแ แ แแฃแแแแแแ แแแแแฎแแแแแ แแแแแแ แแแแจแขแแแแแจแ แแแแแ แแแแ, แ แแแแแแช แแแแชแแแก แแแ แชแแแแแแแแแก แแ แกแแแแแแแช แแแแจแขแแแแแแ แงแแแแ แแฅแแก แแแแจแ แแ แแฎแแ แแแแแแงแแคแ แแฎแแแ แแแ แกแแแแแก แกแขแแแแแแแแชแแแกแแแแก.
Java 20-แแก แแฎแแแ แคแฃแแฅแชแแแแ แแแแชแแแก:
- แจแแแแแแแแแแแฃแแแ Scoped Values-แแก แฌแแแแกแฌแแ แ แแฎแแ แแแญแแ แ, แ แแแแแแช แกแแจแฃแแแแแแก แแซแแแแ แฃแชแแแแแ แแแแแชแแแแแแก แแแแแแ แแแ แแแแแแแแก แจแแ แแก แแ แแแแแชแแแแ แแคแแฅแขแฃแ แ แแแชแแแ แจแแแแแแแ แแแแแแแแก แจแแ แแก (แแแแจแแแแแแแแแ แแแแแแแแ แแแแแ แแแแฆแแแ). Scoped Values โโแแแแแฃแแแแแแแ แแแแแแฃแ -แแแแแแฃแ แ แชแแแแแแแแก แแแฅแแแแแแแก แฉแแกแแแแชแแแแแแแ แแ แฃแคแ แ แแคแแฅแขแฃแ แแ แแแ แขแฃแแแฃแ แ แแแแแแแแแก แซแแแแแ แแแแ แ แแแแแแแแแก (แแแแกแแแแ แแ แแแแแแแแแแ แแแแแแฃแ แ) แแแแแงแแแแแแกแแก. Scoped Values-แกแ แแ แแแแแแฃแ -แแแแแแฃแ แชแแแแแแแก แจแแ แแก แแแแแแ แ แแแแกแฎแแแแแแ แแกแแ, แ แแ แแแ แแแแ แแฌแแ แแแ แแ แแฎแแ, แแ แจแแแซแแแแ แแแแ แจแแชแแแ แจแแแแแแแจแ แแ แฎแแแแแกแแฌแแแแแ แ แฉแแแ แแฎแแแแ แแแแแแฃแ แ แจแแกแ แฃแแแแแก แแแแแ แฎแแแแ แซแแแแแแแก แแแแแแแแแแแจแ. class Server { final static ScopedValue CURRENT_USER = new ScopedValue(); void serve(Request request, Response response) { var level = (request.isAuthorized()? ADMIN : GUEST); var user = new User(level); ScopedValue.where(CURRENT_USER, user) .run(() -> Application.handle(request, response)); } } class 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); } }
- แแแแแขแแแฃแแแ แแแแแแ แแแแ แแแแแกแแฎแฃแแแแแแจแ แจแแแแแแแแแก แจแแกแแแแแแกแแแแก แแแแแฎแ แฌแแแแกแฌแแ แ แแแแแแแแแขแแชแแ, แ แแแแแแช แกแแจแฃแแแแแแก แแซแแแแก แจแแแแฎแแแแแก แแขแแแแขแแแก แแแแแแงแแแแ แแแฅแแแแ แจแแแแแแแแ, แ แแแแแแแช แแแแชแแแก แแแแจแแแแแแแแแแก แกแแ แแแก แแฃแกแขแ แแแแจแแแแแแแแแแก แแแชแแแแ, แ แแช แแแ แ แแแแแฎแแแแ if-else แแแแ แแขแแ แแแแก แแแชแฃแแแแแ แฏแแญแแแแก. static String formatterPatternSwitch(Object obj) { return switch (obj) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); }; }
- แแแแแขแแแฃแแแ FFM (Foreign Function & Memory) API-แแก แแแแ แ แฌแแแแกแฌแแ แ แแแแแแแแแขแแชแแ, แ แแแแแแช Java แแ แแแ แแแแแก แกแแจแฃแแแแแแก แแซแแแแก แฃแ แแแแ แแฅแแแแแแแแแ แแแ แ แแแแแแ แแ แแแแแชแแแแแแแ แแแ แ แแแแแแแแแแแแแแแ แคแฃแแฅแชแแแแแก แแแแแซแแฎแแแแ แแ JVM-แแก แแแ แแ แแแฎแกแแแ แแแแแ แฌแแแแแแ.
- แแแแแขแแแฃแแแ แแแ แขแฃแแแฃแ แ แแแแแแแแแก แแแแ แ แฌแแแแกแฌแแ แ แแแแแแแแแขแแชแแ, แ แแแแแแแช แแกแฃแแฃแฅแ แแแแแแแแแ แแ แแแแจแแแแแแแแแ แแแแ แขแแแแแก แแแฆแแแ แฎแแ แแกแฎแแก แแ แแแแแซแแคแแแแ แแแแแแแชแแแแแก แฌแแ แแก แแ แจแแแแ แฉแฃแแแแแก.
- แแแแแแขแ แกแขแ แฃแฅแขแฃแ แแ แแแฃแแ แแแ แแแแแแแแแก แแฅแกแแแ แแแแแขแฃแแ API-แแก แแแแ แ แแแ แกแแ, แ แแแแแแช แแแแ แขแแแแแก แแ แแแแแซแแคแแแแ แแแแแแแชแแแแแก แจแแแฃแจแแแแแแก แกแฎแแแแแกแฎแแ แแแแแแแแแ แแแจแแแแฃแแ แแ แแแแแ แแแแแแแแแก แแ แ แแ แแแฃแแแ แแแแฎแแแแแ.
- แแแแแขแแแฃแแแ Vector API-แแก แแแฎแฃแแ แฌแแแแกแฌแแ แ แแแแแแแแแขแแชแแ. แแก API แฃแแ แฃแแแแแงแแคแก แคแฃแแฅแชแแแแก แแแฅแขแแ แฃแแ แแแแแแแแแแแกแแแแก, แ แแแแแแแช แจแแกแ แฃแแแแฃแแแ x86_64 แแ AArch64 แแ แแชแแกแแ แแก แแแฅแขแแ แฃแแ แแแกแขแ แฃแฅแชแแแแแก แแแแแงแแแแแแ แแ แกแแจแฃแแแแแแก แแซแแแแ แแ แแแ แแฃแแแ แแแฃแจแแแก แแ แแแแ แแแแจแแแแแแแแแ (SIMD). HotSpot JIT แแแแแแแแขแแ แแก แกแแแแแ แฃแแ แแแแ แแชแแแแแก แแแขแแแแขแฃแ แ แแแฅแขแแ แแแแชแแแกแแแ แแแแกแฎแแแแแแแ, แแฎแแแ API แกแแจแฃแแแแแแก แแซแแแแ แแแฅแขแแ แแแแชแแแก แชแแแกแแฎแ แแแแขแ แแแแกแแแแก แแแแแชแแแแ แแแ แแแแแฃแ แ แแแแฃแจแแแแแแกแแแแก.
แฌแงแแ แ: opennet.ru
