Java SE 15 เป€เบ›เบตเบ”เบ•เบปเบง

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

Java SE 15 เบ–เบทเบเบˆเบฑเบ”เป€เบ›เบฑเบ™เบฅเบธเป‰เบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเบˆเบฐเบชเบทเบšเบ•เปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบปเบ™เบเปˆเบงเบฒเบเบฒเบ™เบ›เปˆเบญเบเบ•เปเปˆเป„เบ›. เบชเบฒเบ‚เบฒเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเป„เบฅเบเบฐเบเบฒเบง (LTS) เบ„เบงเบ™เป€เบ›เบฑเบ™ Java SE 11, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบชเบทเบšเบ•เปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบปเบ™เบเปˆเบงเบฒ 2026. เบชเบฒเบ‚เบฒ LTS เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ‚เบญเบ‡ Java 8 เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเบปเบ™เบเปˆเบงเบฒเป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒ 2020. เบเบฒเบ™เบ›เปˆเบญเบ LTS เบ•เปเปˆเป„เบ›เปเบกเปˆเบ™เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ”เบทเบญเบ™เบเบฑเบ™เบเบฒ 2021. เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™เบงเปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ‚เบญเบ‡ Java 10, เป‚เบ„เบ‡เบเบฒเบ™เป„เบ”เป‰เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบซเบกเปˆ, เป€เบŠเบดเปˆเบ‡เบซเบกเบฒเบเป€เบ–เบดเบ‡เบงเบปเบ‡เบˆเบญเบ™เบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆ. เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบซเบกเปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเบนเปˆเปƒเบ™เบชเบฒเบ‚เบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปเบฅเบฐเบˆเบฒเบเบชเบฒเบ‚เบฒเปƒเบ”เบ–เบทเบเปเบเบเบญเบญเบเบ—เบธเบเป†เบซเบปเบเป€เบ”เบทเบญเบ™เป€เบžเบทเปˆเบญเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆ.

เบˆเบฒเบ เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒ Java 15 เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰ เปเบฒเบ:

  • เปƒเบ™เบ•เบปเบง เบฎเบญเบ‡เบฎเบฑเบš EdDSA (Edwards-Curve Digital Signature Algorithm) เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™เบ”เบดเบˆเบดเบ•เบญเบ™ RFC 8032). เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” EdDSA เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเบšเปเปˆเป„เบ”เป‰เบ‚เบถเป‰เบ™เบเบฑเบšเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบฎเบฒเบ”เปเบง, เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ—เบฒเบ‡เบ‚เป‰เบฒเบ‡ (เป€เบงเบฅเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™) เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป„เบงเบเบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ECDSA เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™เบžเบฒเบชเบฒ C, เบกเบตเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ”เบฝเบงเบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, EdDSA เป‚เบ”เบเปƒเบŠเป‰เป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡เบฎเบนเบšเบชเป‰เบงเบเบ—เบตเปˆเบกเบตเบ›เบธเปˆเบก 126-bit เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš ECDSA เบ—เบตเปˆเบกเบตเป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡เบฎเบนเบšเบฎเบต secp256r1 เปเบฅเบฐเบ›เบธเปˆเบก 128-bit.
  • เป€เบžเบตเปˆเบกเปเบฅเป‰เบง เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบŠเบฑเป‰เบ™เบฎเบฝเบ™เปเบฅเบฐเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบ—เบตเปˆเบœเบฐเบ™เบถเบเป€เบ‚เบปเป‰เบฒเบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบŠเบฑเป‰เบ™เบฎเบฝเบ™เปเบฅเบฐเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบญเบทเปˆเบ™เป€เบžเบทเปˆเบญเบชเบทเบšเบ—เบญเบ”, เบ‚เบฐเบซเบเบฒเบ, เบซเบผเบทเบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเบœเบฐเบ™เบถเบเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบเบฑเบ‡เปƒเบซเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เปƒเบŠเป‰ superclass เบซเบผเบฒเบเบเบงเปˆเบฒเบ•เบปเบงเปเบเป‰เป„เบ‚เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡, เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบšเบญเบเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบ‚เบญเบ‡ subclass เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ.

    package com.example.geometry;

    เบฎเบนเบšเบฎเปˆเบฒเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ›เบฐเบ—เบฑเบšเบ•เบฒเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ
    เบญเบฐเบ™เบธเบเบฒเบ” com.example.polar.Circle,
    com.example.quad.Rectangle,
    com.example.quad.simple.Square {โ€ฆ}

  • เป€เบžเบตเปˆเบกเปเบฅเป‰เบง เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบเบปเบ‡เป‚เบ”เบ bytecode เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบญเบทเปˆเบ™เป†. เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบŠเบทเปˆเบญเบ‡โ€‹เป„เบงเป‰โ€‹เปเบกเปˆเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เบเบญเบšโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เปเบšเบšโ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เป„เบซเบงโ€‹เบ‚เบญเบ‡โ€‹เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปเบฅเปˆเบ™โ€‹เปเบฅเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบซเป‰โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป‚เบ”เบโ€‹เบ—เบฒเบ‡โ€‹เบญเป‰เบญเบกโ€‹, เป‚เบ”เบโ€‹เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™โ€‹. เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™. เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบตเบงเบปเบ‡เบˆเบญเบ™เบŠเบตเบงเบดเบ”เบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”, เบชเบฐเบ™เบฑเป‰เบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบˆเบฒเบเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบชเบฐเบ–เบดเบ•เบดเปเบกเปˆเบ™เบšเปเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบ„เบงเบฒเบกเบˆเปเบฒเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เบเบฑเบ‡เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™ API sun.misc.Unsafe::defineAnonymousClass เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบเบเบเป‰เบฒเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.
  • เป€เบ„เบทเปˆเบญเบ‡เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ ZGC (Z Garbage Collector) เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเบงเปˆเบฒเบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡. ZGC เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบ•เบปเบงเบ•เบฑเป‰เบ‡เบ•เบปเบงเบ•เบต, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ (เป€เบงเบฅเบฒเบขเบธเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ ZGC เบšเปเปˆเป€เบเบตเบ™ 10 ms.) เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡ heaps เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เบ•เบฑเป‰เบ‡เปเบ•เปˆเบซเบผเบฒเบเบฎเป‰เบญเบ megabytes เป€เบ–เบดเบ‡เบซเบผเบฒเบ terabytes.
  • เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเปเบฅเบฐเบžเบปเบšเบงเปˆเบฒเบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบปเปˆเบงเป„เบ›
    เบ„เบปเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ Shenandoah, เป€เบฎเบฑเบ”เบงเบฝเบเบ”เป‰เบงเบเบเบฒเบ™เบขเบธเบ”เบŠเบปเปˆเบงเบ„เบฒเบงเปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ” (เบ•เบปเบงเป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเป€เบงเบฅเบฒเปœเป‰เบญเบเบฅเบปเบ‡). Shenandoah เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Red Hat เปเบฅเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบฑเบ‡เป€เบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบขเบธเบ”เบžเบฑเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเป‚เบ”เบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java. เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปเบกเปˆเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เปเบฅเบฐเบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ heap, i.e. เบชเปเบฒเบฅเบฑเบš heaps เบ‚เบญเบ‡ 200 MB เปเบฅเบฐ 200 GB เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบˆเบฐเบ„เบทเบเบฑเบ™ (เบขเปˆเบฒเบญเบญเบเบกเบฒ เป€เบเบตเบ™ 50 ms เปเบฅเบฐเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบžเบฒเบเปƒเบ™ 10 ms);

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเปเบฅเบฐเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบฒเบชเบฒ เบšเบฅเบฑเบญเบเบ‚เปเป‰เบ„เบงเบฒเบก - เบฎเบนเบšเปเบšเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบงเบกเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบซเบผเบฒเบเปเบ–เบงเปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบท escaping เปเบฅเบฐเบฎเบฑเบเบชเบฒเบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบ™เบšเบฅเบฑเบญเบ. เบ•เบฑเบ™เปเบกเปˆเบ™เบเบญเบšเบ”เป‰เบงเบเบชเบฒเบกเบงเบปเบ‡เบขเบทเบกเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

    เบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ”

    String html = " ยป +
    "\n\t" + " ยป +
    "\n\t\t" + " \"Java 1 เบกเบฒเปเบฅเป‰เบง!\" ยป +
    "\n\t" + " ยป +
    "\n" + " ";

    เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธ:

    String html = """


    ยป Java 1\
    เปเบกเปˆเบ™โ€‹เบ—เบตเปˆโ€‹เบ™เบตเป‰!

    """;

  • เบญเบญเบเปเบšเบšเปƒเปเปˆ Legacy DatagramSocket API. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเป€เบเบปเปˆเบฒเบ‚เบญเบ‡ java.net.DatagramSocket เปเบฅเบฐ java.net.MulticastSocket เป„เบ”เป‰เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ—เบตเปˆเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เปเบเป‰เป„เบ‚ เปเบฅเบฐเบฎเบฑเบเบชเบฒ, เปเบฅเบฐเบเบฑเบ‡เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบชเบฐเบ•เบฃเบตเบกเบชเบฐเป€เปเบทเบญเบ™เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™. Loom. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบเบปเปˆเบฒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบ jdk.net.usePlainDatagramSocketImpl.
  • เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบฅเบญเบ‡โ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เบตโ€‹เบชเบญเบ‡โ€‹เบชเบฐโ€‹เป€เบซเบ™เบตโ€‹ เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบš เปƒเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ "เบ•เบปเบงเบขเปˆเบฒเบ‡", เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™เบ—เบฑเบ™เบ—เบตเป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบเบงเบ”เบชเบญเบš. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบ—เบฑเบ™เบ—เบต "เบ–เป‰เบฒ (obj instanceof String s && s.length() > 5) {.. s.contains (..) ..}" เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒ "String s = (String) obj".

    เปเบกเปˆเบ™:

    เบ–เป‰เบฒ (obj เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบธเปˆเบก) {
    เบเบธเปˆเบก = (เบเบธเปˆเบก)obj;
    var entries = group.getEntry();
    }

    เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เปเบฒเบ™เบดเบเบฒเบก "เบเบธเปˆเบกเบเบธเปˆเบก = (เบเบธเปˆเบก) obj":

    เบ–เป‰เบฒ (obj เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบเบธเปˆเบก) {
    var entries = group.getEntry();
    }

  • เบชเบฐเป€เปœเบต เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ "เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ", เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบงเบดเบ—เบตเบเบฒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบ•เปˆเบฒเบ‡เป†เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เป€เบŠเบฑเปˆเบ™: equals(), hashCode() เปเบฅเบฐ toString() เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเปˆเบžเบถเบ”เบ•เบดเบเปเบฒเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡. เป€เบกเบทเปˆเบญเบซเป‰เบญเบ‡เบฎเบฝเบ™เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™ equals(), hashCode() เปเบฅเบฐ toString(), เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เปเบฒเบ™เบดเบเบฒเบกเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™:

    เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบชเบฒโ€‹เบ—เบฒโ€‹เบฅเบฐโ€‹เบ™เบฐ BankTransaction(เบงเบฑเบ™โ€‹เบ—เบตโ€‹เบ—เป‰เบญเบ‡โ€‹เบ–เบดเปˆเบ™โ€‹,
    เบˆเปเบฒเบ™เบงเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
    เบ„เบณเบญเบฐเบ—เบดเบšเบฒเบเบชเบฐเบ•เบฃเบดเบ‡) {}

    เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ™เบตเป‰เบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™ equals(), hashCode() เปเบฅเบฐ toString() เบ•เบทเปˆเบกเปƒเบชเปˆเบงเบดเบ—เบตเบเบฒเบ™ constructor เปเบฅเบฐ getter.

  • เบชเบฐเป€เปœเบต เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡ Foreign-Memory Access API, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบžเบฒเบเบ™เบญเบ Java heap เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบž เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบเบฒเบ™เปเบนเบ™เปƒเบŠเป‰ MemorySegment, MemoryAddress, เปเบฅเบฐ MemoryLayout abstractions.
  • เบ„เบปเบ™เบžเบดเบเบฒเบ™ เปเบฅเบฐเบ›เบฐเบ•เบดเป€เบชเบ”เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบฅเบฑเบญเบเปเบšเบš Biased Locking เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ HotSpot JVM เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบฅเบฑเบญเบเป€เบ—เบดเบ‡เบซเบปเบง. เป€เบ•เบฑเบเบ™เบดเบเบ™เบตเป‰เป„เบ”เป‰เบชเบนเบ™เป€เบชเบเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบ CPUs เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เปเบฅเบฐเปƒเบŠเป‰เปเบฎเบ‡เบ‡เบฒเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡เบกเบฑเบ™.
  • เบ›เบฐโ€‹เบเบฒเบ” เบเบปเบ™เป„เบเบ—เบตเปˆเบฅเป‰เบฒเบชเบฐเป„เบซเบก เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰ RMI, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเบฅเบถเบšเบญเบญเบเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰ RMI เปเบกเปˆเบ™เบฅเป‰เบฒเบชเบฐเป„เบซเบก, เบ–เบทเบเบˆเบฑเบ”เบขเบนเปˆเปƒเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™ Java 8 เปเบฅเบฐเป€เบเบทเบญเบšเบšเปเปˆเป€เบ„เบตเบเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก.
  • เบฅเบถเบšเปเบฅเป‰เบง เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ JavaScript Nashorn, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบเบปเบเป€เบฅเบตเบเปƒเบ™ Java SE 11.
  • เบฅเบถเบšเบญเบญเบเปเบฅเป‰เบง เบžเบญเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต Solaris OS เปเบฅเบฐ SPARC (Solaris/SPARC, Solaris/x64 เปเบฅเบฐ Linux/SPARC). เบเบฒเบ™เบ–เบญเบ™เบžเบญเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบŠเบธเบกเบŠเบปเบ™เป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” OpenJDK เปƒเบซเบกเปˆเป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เป€เบชเบเป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡ Solaris เปเบฅเบฐ SPARC.

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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™