แแฅแแกแแแแแแ แแแแแแแแ แแแแก แจแแแแแ Oracle-แแ แแแแแฃแจแแ Java SE 20 (Java Platform, Standard Edition 20) แแแแขแคแแ แแ, แ แแแแแแช แแงแแแแแก OpenJDK แฆแแ แแแแแก แแ แแแฅแขแก, แ แแแแ แช แกแแชแแแแแ แ แแแแแแแแแขแแชแแแก. แแแแแแ แแ แแแซแแแแแแฃแแ แคแฃแแฅแชแแแก แแแฎแกแแแก แแแ แแ, Java SE 20 แแแแ แฉแฃแแแแก แแแแกแแแแแแแแก Java แแแแขแคแแ แแแก แฌแแแ แแแแแจแแแแแแแแ - แแแ แ แแแฌแแ แแแ Java แแ แแแฅแขแแแแก แฃแแแขแแกแแแ แแแแแ แแแฃแจแแแแแก แชแแแแแแแแแแก แแแ แแจแ, แ แแแแกแแช แแแจแแแแฃแแ แแฅแแแแ แแฎแแแ แแแ แกแแแ. Java SE 20-แแก แแแ แแแกแขแแแแชแแ (JDK, JRE แแ แกแแ แแแ แ 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 โโแจแแแฃแจแแแแแฃแแแ แซแแคแแแแก แแแแแแฃแ แ แชแแแแแแแแก แแแฅแแแแแแแก แฉแแกแแแแชแแแแแแแ แแ แฃแคแ แ แแคแแฅแขแฃแ แแ แแแ แขแฃแแแฃแ แ แซแแคแแแแก แซแแแแแ แแแแ แ แแแแแแแแแ แแแแแงแแแแแแกแแก (แแแแกแแแแ แแ แแแแแแแแแแ แแแแ). Scoped Values-แกแ แแ thread-local แชแแแแแแแก แจแแ แแก แแแแแแ แ แแแแกแฎแแแแแแ แแกแแ, แ แแ แแแ แแแแ แแฌแแ แแแ แแ แแฎแแ, แแแแแแแแจแ แแแ แจแแแชแแแแแ แแ แฎแแแแแกแแฌแแแแแ แ แฉแแแ แแฎแแแแ แซแแคแแก แจแแกแ แฃแแแแแก แฎแแแแ แซแแแแแแแก แแแแแแแแแแแจแ. class Server { แกแแแแแแ แกแขแแขแแแฃแ แ ScopedValue CURRENT_USER = new ScopedValue(); void serve(แแแแฎแแแแแก แแแแฎแแแแ, แแแกแฃแฎแแก แแแกแฃแฎแ) { var level = (แแแแฎแแแแ. แแ แแก แแแขแแ แแแแแฃแแ()? ADMIN : GUEST); var user = แแฎแแแ แแแแฎแแแ แแแแแ (แแแแ); ScopedValue.where(CURRENT_USER, แแแแฎแแแ แแแแแ).run(() -> Application.handle(แแแแฎแแแแ, แแแกแฃแฎแ)); } } class DatabaseManager { DBConnection open() { var user = Server.CURRENT_USER.get(); แแฃ (!user.canOpen()) แฉแแแแแแก แแฎแแแ InvalidUserException(); แแแแแ แฃแแแ แแฎแแแ DBCConnection(...); }}
- แแแแแขแแแฃแแแ แฉแแแแฌแแ แแแแก แจแแแแแแแแแก แแแแ แ แแแแแฎแแแแ, แ แแแแแแช แแคแแ แแแแแก แฏแแแ 16-แจแ แแแแแ แแแแ แจแแแแแแแแแก แจแแกแแขแงแแแก แแแฎแแกแแแแแแแแก แฉแแแแฌแแ แแแแก แแแแกแแแแก แแแแจแแแแแแแแแแก แแแกแแแแแแแแแแแแ. แแแแแแแแแ: แฉแแแแฌแแ แ 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); case Double d -> String.format("double %f", d); case String s -> String.format("แกแขแ แแฅแแแ %s", s); แแแแฃแแแกแฎแแแแ -> o.toString(); }; }
- แแแแแขแแแฃแแแ FFM (Foreign Function & Memory) API-แแก แแแแ แ แฌแแแแกแฌแแ แ แแแแฎแแ แชแแแแแแ, แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แแแแฌแงแแ Java แแ แแแ แแแแแแก แฃแ แแแแ แแฅแแแแแแ แแแ แ แแแแแแ แแ แแแแแชแแแแแแแ แแแ แ แแแแแแแแแแแแแแแ แคแฃแแฅแชแแแแแก แแแ แแแแแกแ แแ JVM-แแก แแแ แแ แแแฎแกแแแ แแแแก แฌแแแแแแก แแแแ.
- แแแแแแขแ แแแ แขแฃแแแฃแ แ แซแแคแแแแก แแแแ แ แแแแแฎแแแแ, แแก แแ แแก แแกแฃแแฃแฅแ แซแแคแแแ, แ แแแแแแแช แแแแจแแแแแแแแแ แแแแ แขแแแแแก แฌแแ แแก แแ แแแแ แฉแฃแแแแก แแแฆแแแ แฎแแ แแกแฎแแก แแ แแแแแแแแแแแแแ แแแแแแแชแแแแก.
- แแแแแขแแแฃแแแ แแแแ แ แแฅแกแแแ แแแแแขแฃแแ API แกแขแ แฃแฅแขแฃแ แแ แแแฃแแ แแแ แแแแแแแแแกแแแแก, แ แแแแแแช แแแแ แขแแแแแก แแ แแแแแแแแแแแแแ แแแแแแแชแแแแแก แแแแแแแแ แแแแก แกแฎแแแแแกแฎแแ แซแแคแแแจแ แแแจแแแแฃแแ แแ แแแแแ แแแแชแแแแก แแ แ แแแแแแ แแแแฎแแแแแ.
- แแแแแขแแแฃแแแ Vector API-แแก แแแฎแฃแแ แแแแแฎแแแแ, แ แแแแแแช แฃแแ แฃแแแแแงแแคแก แแแฅแขแแ แฃแแ แแแแแแแแแแแก แคแฃแแฅแชแแแแก, แ แแแแแแแช แจแแกแ แฃแแแแฃแแแ แแแฅแขแแ แฃแแ แแแกแขแ แฃแฅแชแแแแแก แแแแแงแแแแแแ x86_64 แแ AArch64 แแ แแชแแกแแ แแแแ แแ แกแแจแฃแแแแแแก แแซแแแแก แแแแ แแชแแแแก แแ แแแ แแฃแแแ แแแแแแงแแแแ แแ แแแแ แแแแจแแแแแแแแแ (SIMD). HotSpot JIT แจแแแแแแแแแจแ แแแแแแแแกแฌแแแแแฃแแ แจแแกแแซแแแแแแแแแแกแแแ แแแแกแฎแแแแแแแ แกแแแแแ แฃแแ แแแแ แแชแแแแแก แแแขแแแแขแฃแ แ แแแฅแขแแ แแแแชแแแกแแแแก, แแฎแแแ API แจแแกแแซแแแแแแก แฎแแแก แแแแคแแแ แแแแแแแขแ แแแแก แแแฅแขแแ แแแแชแแ แแแแแชแแแแ แแแ แแแแแฃแ แ แแแแฃแจแแแแแแกแแแแก.
แฌแงแแ แ: opennet.ru