Java SE 23 เปเบฅเบฐ OpenJDK 23 เบ›เปˆเบญเบเบญเบญเบเบกเบฒ

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบปเบเป€เบ”เบทเบญเบ™, Oracle เป„เบ”เป‰เบ›เปˆเบญเบ Java SE 23 (Java Platform, Standard Edition 23), เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™ OpenJDK เปเบšเบšเป‚เบญเป€เบžเบ™เบŠเบญเบชเป€เบ›เบฑเบ™เป€เบญเบเบฐเบชเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡. เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบฅเบถเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเปœเบฑเบšเบชเบฐเปœเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบญเบญเบ, Java SE 23 เบเบฑเบ‡เบ„เบปเบ‡เบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเปเบžเบฅเบ”เบŸเบญเบก Java เบฅเบธเป‰เบ™เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰ - เป‚เบ„เบ‡เบเบฒเบ™ Java เบ—เบตเปˆเบ‚เบฝเบ™เป„เบงเป‰เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰เบชเปˆเบงเบ™เปƒเบซเบเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ•เป‰เบฅเบธเป‰เบ™เปƒเปเปˆ. เบฅเบธเป‰เบ™เบ—เบตเปˆเบžเป‰เบญเบกเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡ Java SE 22 (JDK, JRE, เปเบฅเบฐ Server JRE) เปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบกเบชเบณเบฅเบฑเบš... Linux (x86_64, AArch64), Windows (x86_64) เปเบฅเบฐ macOS (x86_64, AArch64). เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™ OpenJDK, เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡ Java 23 เปเบกเปˆเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบขเปˆเบฒเบ‡เบ„เบปเบšเบ–เป‰เบงเบ™เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” GPLv2 เบžเป‰เบญเบกเบ”เป‰เบงเบเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ GNU ClassPath, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบเบเบฑเบšเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบ„เป‰เบฒ.

Java SE 23 เบ–เบทเบเบˆเบฑเบ”เป€เบ›เบฑเบ™เบฅเบธเป‰เบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐเบˆเบฐเบชเบทเบšเบ•เปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบปเบ™เบเปˆเบงเบฒเบเบฒเบ™เบ›เปˆเบญเบเบ•เปเปˆเป„เบ›. เบชเบฒเบ‚เบฒเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเป„เบฅเบเบฐเบเบฒเบง (LTS) เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™ Java SE 21 เบซเบผเบท Java SE 17, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบปเบ™เบเปˆเบงเบฒ 2031 เปเบฅเบฐ 2029, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš (เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบกเบตเบˆเบปเบ™เบเปˆเบงเบฒ 2028 เปเบฅเบฐ 2026). เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบชเบฒเบ‚เบฒ LTS เบ‚เบญเบ‡ Java SE 8 เบˆเบฐเปเบเปˆเบเบฒเบงเป€เบ–เบดเบ‡เบ›เบต 2030, เปเบฅเบฐ Java SE 11 เบˆเบปเบ™เป€เบ–เบดเบ‡เบ›เบต 2032.

เปƒเบ™เบšเบฑเบ™เบ”เบฒ 23 เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบ™ Java SE:

  • เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ ZGC (Generation Z Garbage Collector) เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบงเบฑเบ”เบ–เบธ "เป€เบเบปเปˆเบฒ" เปเบฅเบฐ "เบญเปˆเบญเบ™" เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเป„เบงเป†เบกเบฒเบ™เบตเป‰เบ”เป‰เบงเบเบญเบฒเบเบธเบชเบฑเป‰เบ™. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Generational ZGC เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ‚เบญเบ‡เบฎเป‰เบฒเบ™เบ‚เบฒเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เป‚เบซเบผเบ” CPU เปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ. เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš Generational ZGC เบเบฑเบš Apache Cassandra 4 เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ 4 เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡ throughput เบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ” heap เบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เป„เบ•เบกเบฒเบ”เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ” heap เบ—เบตเปˆเบกเบต throughput เบ„เบปเบ‡เบ—เบตเปˆ.
  • JavaDoc เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Markdown เป€เบžเบทเปˆเบญเบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบชเบฒเบ™เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เปเบ—เบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ‚เบญเบ‡ HTML เปเบฅเบฐ JavaDoc @ tags.
    Java SE 23 เปเบฅเบฐ OpenJDK 23 เบ›เปˆเบญเบเบญเบญเบเบกเบฒ
  • เบเบปเบ™เป„เบเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เบฐเป€เบžเบ” primitive (int, byte, char, เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบงเบฑเบ”เบ–เบธเบญเบทเปˆเบ™เป†) เปƒเบ™เบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เปเบกเปˆเปเบšเบš, เปƒเบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡ "เบ•เบปเบงเบขเปˆเบฒเบ‡", เปเบฅเบฐเปƒเบ™ "เบชเบฐเบซเบผเบฑเบš" เบ•เบฑเบ™. switch (x.getStatus()) { case 0 -> โ€œokayโ€; เบเปเบฅเบฐเบ™เบต 1 -> "เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž"; เบเปเบฅเบฐเบ™เบต 2 -> "เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”"; case int i -> โ€œเบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ:โ€ + i; } เบ–เป‰เบฒ (i instance of byte b) { โ€ฆ b โ€ฆ }
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ "เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเป‚เบกเบ”เบนเบ™ M" เบ”เบฝเบงเป€เบžเบทเปˆเบญเบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบŠเบธเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เบญเบญเบเป‚เบ”เบเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบ„เบฑเป‰เบ‡เบ”เบฝเบง. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเบกเบฒเปƒเบŠเป‰เบ„เบทเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” modular, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐเบซเป‰เบญเบ‡เบฎเบฝเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบขเบนเปˆเปƒเบ™เบฅเปเบฒเบ”เบฑเบšเบŠเบฑเป‰เบ™เบ‚เบญเบ‡เบŠเบธเบ”. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบฅเบฐเบšเบธ "เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเป‚เบกเบ”เบนเบ™ java.base" เบˆเบฐเบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ” 54 เบŠเบธเบ”เบ—เบตเปˆเบฅเบงเบกเบขเบนเปˆเปƒเบ™เป‚เบกเบ”เบนเบ™ java.base, เป€เบŠเบดเปˆเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบˆเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ ("เบ™เปเบฒเป€เบ‚เบปเป‰เบฒ java.io.*", "เบ™เปเบฒเป€เบ‚เบปเป‰เบฒ java.util.* โ€ เปเบฅเบฐเบญเบทเปˆเบ™เป†).

    เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡ Class-File API เปเบกเปˆเบ™เบชเบฐเป€เปœเบตเปƒเบซเป‰เป€เบžเบทเปˆเบญเบงเบดเป€เบ„เบฒเบฐ, เบชเป‰เบฒเบ‡ เปเบฅเบฐเบ›เปˆเบฝเบ™เป„เบŸเบฅเปŒเบซเป‰เบญเบ‡เบฎเบฝเบ™ Java. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { for (ClassElement ce : classModel) { if (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce);

  • เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเปเบ›เบ”เบ‚เบญเบ‡ Vector API เบชเบฐเบซเบ™เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ vector เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ vector เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต x86_64 เปเบฅเบฐ AArch64 เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเป‰เบญเบกเบเบฑเบ™เบเบฑเบšเบ„เปˆเบฒเบซเบผเบฒเบ (SIMD). เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบ™ HotSpot JIT compiler เบชเปเบฒเบฅเบฑเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” vectorization เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ scalar, API เปƒเบซเบกเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ„เบงเบšเบ„เบธเบก vectorization เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ™.
  • เป€เบžเบตเปˆเบกเบฎเบนเบšเปเบšเบš, printf, readPassword เปเบฅเบฐ readLine เบงเบดเบ—เบตเบเบฒเบ™เปƒเบชเปˆเบซเป‰เบญเบ‡เบฎเบฝเบ™ java.io.Console เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบฎเบนเบšเปเบšเบš, เบชเบฐเปเบ”เบ‡เปเบฅเบฐเบญเปˆเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเป€เบฅเบทเบญเบ. System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", new Date()) 2024-mai-16 jeudi
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡ Stream API เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบšเปเปˆเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เป€เบ”เบตเบกเปเบกเปˆเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เปƒเปเปˆ Stream::gather(Gatherer), เป€เบŠเบดเปˆเบ‡เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบชเบฐเบ•เบฃเบตเบกเป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เปƒเบซเป‰เบเบฑเบšเบžเบงเบเบกเบฑเบ™. jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(windowFixed(3)).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบฑเป‰เบ™เบ•เบปเป‰เบ™เบ—เบตเบชเบฒเบกเบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบเบฒเบ”เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡ เปเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบŠเบทเปˆเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™ "เบซเบผเบฑเบ", เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เปเบˆเบเบขเบฒเบเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ/เบชเบฐเบ–เบดเบ”, เบ–เปˆเบฒเบเบ—เบญเบ”เบญเบฒเป€เบฃเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡ เปเบฅเบฐเปœเปˆเบงเบเบ‡เบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบŠเบฑเป‰เบ™เบฎเบฝเบ™. // เปเบกเปˆเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ HelloWorld { public static void main(String[] args) { System.out.println("เบชเบฐเบšเบฒเบเบ”เบตเป‚เบฅเบ!"); } } // เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” void main() { System.out.println("เบชเบฐเบšเบฒเบเบ”เบต, เป‚เบฅเบ!"); }
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เบชเป‰เบฒเบ‡เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒ super(...), เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป‚เบ—เบซเบฒเบ•เบปเบงเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ„เบฅเบฒเบชเปเบกเปˆเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบˆเบฒเบเบ•เบปเบงเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ„เบฅเบฒเบชเบ—เบตเปˆเบชเบทเบšเบ—เบญเบ”เบเบฑเบ™เบกเบฒ เบ–เป‰เบฒเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบ•เบปเบงเบชเป‰เบฒเบ‡เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบœเบนเป‰เบชเป‰เบฒเบ‡. class Outer { void hello() { System.out.println("เบชเบฐเบšเบฒเบเบ”เบต"); } class Inner { Inner() { hello(); super(); } } }
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบชเบฒเบกเบ‚เบญเบ‡ Scoped Values, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปเบšเปˆเบ‡เบ›เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบ—เบปเปˆเบงเบเบฐเบ—เบนเป‰เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบฅเบเบ›เปˆเบฝเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฐเบ—เบนเป‰เป€เบ”เบฑเบ (เบ„เปˆเบฒเปเบกเปˆเบ™เบชเบทเบšเบ—เบญเบ”). เบ‚เบญเบšเป€เบ‚เบ”เบกเบนเบ™เบ„เปˆเบฒเปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบžเบทเปˆเบญเบ—เบปเบ”เปเบ—เบ™เบเบปเบ™เป„เบเบ•เบปเบงเปเบ›เบ‚เบญเบ‡ thread-local เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบเบฐเบ—เบนเป‰ virtual (เบžเบฑเบ™เบซเบผเบทเบฅเป‰เบฒเบ™เบ‚เบญเบ‡ threads). เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เปเบฅเบฐเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบเบฐเบ—เบนเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบญเบฐเบ”เบตเบ”เบ–เบทเบเบ‚เบฝเบ™เบ„เบฑเป‰เบ‡เบ”เบฝเบง, เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เปเบฅเบฐเบเบฑเบ‡เบ„เบปเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบเบฐเบ—เบนเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.
  • เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบฒเบกเบ‚เบญเบ‡ Structured Concurrency API เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบซเบผเบฒเบ threaded เบ‡เปˆเบฒเบเบ”เบฒเบเป‚เบ”เบเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบซเบผเบฒเบเบซเบ™เป‰เบฒเบงเบฝเบเบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบ›เบฑเบ™เบšเบฅเบฑเบญเบเบ”เบฝเบง.
  • เบงเบดเบ—เบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบžเบฒเบเบ™เบญเบ (เบ™เบญเบ JVM) เบ—เบตเปˆเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบซเป‰เบญเบ‡เบฎเบฝเบ™ sun.misc.Unsafe เป„เบ”เป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบ เปเบฅเบฐเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเปƒเบซเป‰เบฅเบถเบšเบญเบญเบ. เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ™เบญเบ heap เปเบฅเบฐเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบžเบฒเบเบ™เบญเบ, เบกเบฑเบ™เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰ VarHandle API เปเบฅเบฐ FFM (Foreign Function & Memory) API.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบเปˆเบฝเบงเบเบฑเบšเป€เบงเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปเบšเบšเบเบฒเบŸเบดเบ JavaFX 23 เปเบฅเบฐเบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒ GraalVM JIT compiler เปƒเบ™ Oracle JDK 23 เบ•เบปเป‰เบ™เบ•เป.

เบเบฑเบ‡เป„เบ”เป‰เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เบปเปˆเบงเป„เบ› GraalVM, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ JavaScript (Node.js), Python, Ruby, R, เบžเบฒเบชเบฒเปƒเบ”เป†เบชเปเบฒเบฅเบฑเบš JVM (Java, Scala, Clojure, Kotlin) เปเบฅเบฐเบžเบฒเบชเบฒเบ•เปˆเบฒเบ‡เป†. โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆ LLVM bitcode เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡ (Cโ€‹, C ++โ€‹, Rustโ€‹)โ€‹. เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ JDK 23, เบฎเบธเปˆเบ™เปƒเบซเบกเปˆเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰, เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบฑเบ‡ Python เปเบฅเบฐ WebAssembly เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฐเบซเบฑเบ” Java เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก JIT.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster