เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเบฑเบเปเบงเบฅเบฒเบซเบปเบเปเบเบทเบญเบ, 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 เบเบทเบเบเบฑเบเปเบเบฑเบเบฅเบธเปเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบปเปเบงเปเบเปเบฅเบฐเบเบฐเบชเบทเบเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบธเบเบเบปเบเบเปเบงเบฒเบเบฒเบเบเปเบญเบเบเปเปเปเบ. เบชเบฒเบเบฒเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเปเบฅเบเบฐเบเบฒเบง (LTS) เบเบงเบเปเบเบฑเบ Java SE 17, เปเบเบดเปเบเบเบฐเบชเบทเบเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบธเบเบเบปเบเบเปเบงเบฒ 2029. เปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบทเบญเบเบเปเบฒเบเบงเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบญเบ Java 10, เปเบเบเบเบฒเบเปเบเปเบเปเบฝเบเปเบเบชเบนเปเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบซเบกเป, เปเบเบดเปเบเบซเบกเบฒเบเปเบเบดเบเบงเบปเบเบเบญเบเบเบตเปเบชเบฑเปเบเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบเบเบฑเปเบเบเบฒเบเบเปเบญเบเปเบซเบกเป. เบเบฑเบเบเบฑเบเปเบซเบกเปเปเบเบเบฑเบเบเบธเบเบฑเบเปเบเปเบเบทเบเบเบฑเบเบเบฐเบเบฒเบขเบนเปเปเบเบชเบฒเบเบฒเบเบปเปเบเบชเบฐเบเบฑเบเบเบตเปเบกเบตเบเบฒเบเบเบฑเบเบเบธเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบ, เปเบเบดเปเบเบเบฐเบเบญเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบเบฝเบกเบเปเบญเบกเปเบฅเบฐเบเบฒเบเบชเบฒเบเบฒเปเบเบเบทเบเปเบเบเบญเบญเบเบเบธเบเปเบซเบปเบเปเบเบทเบญเบเปเบเบทเปเบญเบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบเบเบฒเบเบเปเบญเบเปเบซเบกเป.
เบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเปเบซเบกเปเปเบ Java 20 เบเบฐเบเบญเบเบกเบต:
- เบกเบตเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบทเปเบญเบเบเบปเปเบเบชเปเบฒเบฅเบฑเบ Scoped Values, เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเปเบกเบนเบเบเบตเปเบเปเปเบเปเบฝเบเปเบเบเปเบเปเบเบตเปเบเบฐเปเบเปเบเบเบฑเบเปเบเบเบปเปเบงเบเบฐเบเบนเปเปเบฅเบฐเบเปเปเบกเบนเบเบเบตเปเปเบฅเบเบเปเบฝเบเบขเปเบฒเบเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบฐเบเบนเปเปเบเบฑเบ (เบกเบนเบเบเปเบฒเปเบกเปเบเบชเบทเบเบเบญเบ). เบเบญเบเปเบเบเบกเบนเบเบเปเบฒเปเบกเปเบเปเบเปเบเบทเบเบเบฑเบเบเบฐเบเบฒเปเบเบทเปเบญเบเบปเบเปเบเบเบเบปเบเปเบเบเบปเบงเปเบเบเบญเบ thread-local เปเบฅเบฐเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบซเบผเบฒเบเบเบถเปเบเปเบกเบทเปเบญเบเปเบฒเปเบเปเบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบเบเบฐเบเบนเป virtual (เบเบฑเบเบซเบผเบทเบฅเปเบฒเบเบเบญเบ threads). เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบตเป เบชเบณ เบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเปเบฒเบเบญเบเปเบเบเปเบฅเบฐเบเบปเบงเปเบเบเปเบญเบเบเบดเปเบเบเบญเบเบเบฐเบเบนเปเปเบกเปเบเบงเปเบฒเบญเบฐเบเบตเบเบเบทเบเบเบฝเบเบเบฑเปเบเบเบฝเบง, เบเปเปเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเปเปเบเบญเบฐเบเบฒเบเบปเบ, เปเบฅเบฐเบเบฑเบเบเบปเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเปเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเบฐเบเบนเปเปเบเบปเปเบฒเบเบฑเปเบ. class Server { final static ScopedValue CURRENT_USER = new ScopedValue(); void server(เบฎเปเบญเบเบเปเบเบฒเบเบฎเปเบญเบเบเป, เบเปเบฒเบเบญเบเบเบญเบเบชเบฐเบซเบเบญเบ) { var level = (request. isAuthorized()? ADMIN : GUEST); var user = เบเบนเปเปเบเปเปเปเป(เบฅเบฐเบเบฑเบ); 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); } }
- เบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบทเปเบญเบเบเบปเปเบเบเบตเบชเบตเปเบเบญเบเบเบฒเบเบเบฑเบเบเบนเปเบฎเบนเบเปเบเบเปเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ "เบชเบฐเบซเบผเบฑเบ" เปเบเปเบเบทเบเปเบเบตเปเบก, เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบ "เบเปเบฅเบฐเบเบต" เปเบเปเบเปเปเปเบกเปเบเบเปเบฒเบเบตเปเปเบเปเบเบญเบ, เปเบเปเบฎเบนเบเปเบเบเบเบตเปเบกเบตเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบเบตเปเบเบงเบกเปเบญเบปเบฒเบเบธเบเบเบญเบเบเปเบฒเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เปเบเบดเปเบเบเปเบญเบเบซเบเปเบฒเบเบตเปเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบงเบฒเบกเปเบเบฑเปเบเบเบถเบ. เบเปเบญเบเปเบชเปเบเบญเบ "เบเปเบฒ ... เบญเบทเปเบ" เบชเบฐเปเบเบเบญเบญเบ. static String formatterPatternSwitch(object obj) { return switch (obj) { case Integer i -> String.format("int %d", i); case Long l -> String.format("เบเบฒเบง %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.
- เบเบฒเบเบชเบฐเปเบเบเบเบปเบงเบขเปเบฒเบเบเบตเบชเบญเบเบเบญเบเบเบฐเบเบนเป virtual เปเบเปเบเบทเบเปเบเบตเปเบก, เปเบเบดเปเบเปเบเบฑเบเบเบฐเบเบนเปเบเบตเปเบกเบตเบเปเปเบฒเบซเบเบฑเบเปเบเบปเบฒเบเบตเปเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบฝเบเบเปเบฒเบเบซเบผเบฒเบเปเบฅเบฐเบฎเบฑเบเบชเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบชเบนเบ.
- เปเบเบตเปเบก API เบเบปเบเบฅเบญเบเบเบตเบชเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบตเปเบกเบตเปเบเบเบชเปเบฒเบ, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบซเบผเบฒเบเบเบฐเบเบนเปเบเปเบฒเบเปเบเบเบเบฒเบเบเบดเปเบเบเบปเบงเบซเบผเบฒเบเบงเบฝเบเบเบตเปเปเบฅเปเบเบขเบนเปเปเบเบซเบปเบงเบเปเปเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบฑเบเบเบฅเบฑเบญเบเบเบฝเบง.
- เบเบฒเบเบชเบฐเปเบเบเบเบปเบงเบขเปเบฒเบเบเบตเบซเปเบฒเบเบญเบ Vector API เปเบเปเบเบทเบเปเบเบตเปเบก, เบชเบฐเบซเบเบญเบเบซเบเปเบฒเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเปเบฅเป vector เบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเปเบเปเบเปเบฒเปเบเบฐเบเปเบฒ vector เปเบเปเบเปเบเบเปเบเบต x86_64 เปเบฅเบฐ AArch64 เปเบฅเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบญเบกเบเบฑเบเบเบฑเบเบเปเบฒเบซเบผเบฒเบ (SIMD). เบเปเปเปเบซเบกเบทเบญเบเบเบฑเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบ HotSpot JIT compiler เบชเปเบฒเบฅเบฑเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ vectorization เบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ scalar, API เปเบซเบกเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเบงเบเบเบธเบก vectorization เบขเปเบฒเบเบเบฑเบเปเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบกเบงเบเบเบปเบเบเปเปเบกเบนเบเบเบฐเบซเบเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru
