ááŒá±á¬ááºáááŒá¬ ááœá¶á·ááŒáá¯ážááá¯ážáááºááŒá®ážáá±á¬áẠOracle
Java SE 15 ááᯠáá±áá°áá» áá¶á·ááá¯ážáá°áá®ááŸá¯ áá¯ááºáá±ááŸá¯á¡ááŒá Ạááœá²ááŒá¬ážáááºááŸááºáá¬ážááŒá®áž áá±á¬ááºááœááºááŸááá»áááºá¡áá á¡ááºááááºáá»á¬ážááᯠáááºáááºáááºáá¶áááŸááááºááŒá áºáááºá Long Term Support (LTS) áá¬áááœá²ááẠ11 áá¯ááŸá áºá¡áá á¡ááºááááºáá»á¬ážááᯠáááºáááºáááŸáááá·áº Java SE 2026 ááŒá áºááá·áºáááºá Java 8 á áááẠLTS áá¬áááœá²ááᯠ2020 áá¯ááŸá Ạáá®áááºáá¬áá¡áá áá¶á·ááá¯ážáá±ážáá«áááºá áá¬ááá·áº LTS ááŒáá·áºáá»áááŸá¯ááᯠá ááºáááºáᬠ2021 á¡ááœáẠá á®á ááºáá¬ážáááºá Java 10 áá¯ááºáá±ááŸá¯ááŸá ááŒá®áž ááá±á¬áá»ááºááẠá¡áá áºááœááºááŸáááŸá¯áá»á¬ážá¡ááœáẠááá¯ááá¯ááá¯áá±á¬ááºážáá±á¬ á ááºáááºážááᯠáááºááœáŸááºážáᬠááá±á¬áá»ááºááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¯ááºáááºážá ááºá¡áá áºááá¯á· ááŒá±á¬ááºážááœá¬ážááŒá±á¬ááºáž ááá·áºá¡á¬áž ááááá±ážááŒáá«á áá¯á·á áá¯ááºáá±á¬ááºáá»ááºá¡áá áºáá»á¬ážááᯠá¡áááºááá·áºáá¯ááºáá¬ážáá±á¬ ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŸáá·áº áá¯ááºáá±ááŸá¯áá»á¬áž áááºááŒáááºá á±ááẠááŒá±á¬ááºááá áºááŒááẠá¡ááá¯ááºážá¡áááºáá»á¬áž áá«áááºáá±á¬ á¡áááºáááŒáẠááœááºážáá¶áá¬ážáá±á¬ áá¬á áá¬áá¬áááœá²áá áºáá¯ááœáẠáá¯ááºáá±á¬ááºáá»ááºá¡áá áºááᯠáá®ááœááºáá¬ážáá«áááºá
ááŸ
-
áááºáááºááŒá®áž EdDSA (Edwards-Curve Digital Signature Algorithm) áá áºáá»á áºááẠáááºááŸááºáááºáá®ážááŸá¯ á¡ááºáááá¯áá®áááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯RFC 8032 ) á¡ááá¯ááŒá¯áá¬ážááá·áº EdDSA á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠáá¬á·ááºáá²ááááºáá±á¬ááºážáá»á¬ážáá±á«áºááœááºáá°áááºááŒááºážáááŸááá«á áá±ážááœááºáá»ááºáááºááá¯ááºááá¯ááºááŸá¯áá»á¬ážá០áá¬ááœááºáá±ážááẠ(ááœááºáá»ááºááŸá¯á¡á¬ážáá¯á¶ážáá¡áááºáááŒááºá¡áá»áááºááá¯áá±áá»á¬á á±áááº) ááŸáá·áº áá°áá®áá±á¬áá¬ááœááºááŸá¯á¡ááá·áºááŒáá·áº C language ááŒáá·áºáá±ážáá¬ážáá¬ážáá±á¬ááŸáááŒá®ážáá¬áž ECDSA á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠá áœááºážáá±á¬ááºáááºááá¯ááá¯ááŒááºáááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá EdDSA ááẠ126-bit áá±á¬á·ááŒáá·áº elliptic curve ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž secp256r1 elliptic curve ááŸáá·áº 128-bit key ááŒáá·áº ECDSA ááŸáá·áº áááºáá°áá±á¬á áœááºážáá±á¬ááºáááºááá¯ááŒááááºá -
áááºááŒá±á¬áá«áááºá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á¡á¬áž á¡ááœá±áááºáá¶áááºá ááá¯ážáá»á²á·ááẠááá¯á·ááá¯áẠá¡á á¬ážááá¯ážááẠá¡ááŒá¬ážá¡áááºážáá»á¬ážááŸáá·áº á¡ááºáá¬áá±á·á áºáá»á¬ážá á¡áá¯á¶ážáááŒá¯ááá¯ááºááá·áº á¡áá¯á¶ááááºá¡áááºážáá»á¬ážááŸáá·áº á¡ááºáá¬áá±á·á áºáá»á¬ážá¡ááœáẠá ááºážáááºáá¶á·ááá¯ážááŸá¯á á¡áá¯á¶ááááºáá¬ážáá±á¬ á¡áááºážáá»á¬ážááẠááá¯ážáá»á²á·ááŸá¯á¡ááœáẠááœáá·áºááŒá¯áá¬ážáá±á¬ á¡áááºážááœá²áá»á¬ážááᯠá¡ááá¡áááºáž á á¬áááºážááŒá¯á á¯ááŒááºážá¡áá±á«áº á¡ááŒá±áá¶á áááºáá±á¬ááºááœááºážáá¶ááŒááºáááºááŸá¯áá»á¬ážááẠá á°áá«á¡áááºážá¡á á¬ážá¡áá¯á¶ážááŒá¯ááŸá¯ááᯠááá·áºáááºááẠááá¯ááá¯ááŸááºážáááºážáá±á¬áááºážáááºážááᯠáá±ážáá«áááºáá¡áá¯áẠcom.example.geometry;
public sealed class Shape
áá«áá Ạcom.example.polar.Circleá
com.example.quad.á áá¯áá¶á
com.example.quad.simple.á áá¯áááºáž {⊠} -
áááºááŒá±á¬áá«áááºá á¡ááŒá¬ážá¡áááºážáá»á¬ážá bytecode ááŒáá·áº ááá¯ááºááá¯ááºá¡áá¯á¶ážáááŒá¯ááá¯ááºáá±á¬ áá»áŸáá¯á·ááŸááºá¡áááºážáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á ááŸááºáá¬ážáá±á¬á¡áááºážáá»á¬ážá á¡ááááááºááœááºáá»ááºááŸá¬ runtime ááœáẠá¡áááºážáá»á¬ážááᯠdynamically generate áá¯ááºááŒá®áž ááœááºááá¯ááºáá±á¬áááºážááŒáá·áºá¡áá¯á¶ážááŒá¯áá±á¬ framework áá»á¬ážááœááºá¡áá¯á¶ážááŒá¯áááºááŒá áºáááºááá±á¬ááºááŒááºáááºááŸá¯ . ááá¯ááá¯á·áá±á¬ á¡áááºážáá»á¬ážááẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡ááá·áºá¡áááºááŸááá±á¬ ááá ááºáááºážááŸááá±á¬ááŒá±á¬áá·áº áááºážááá¯á·á¡á¬áž ááááºážááá¬ááºážááŒáá·áº áá¯ááºáá¯ááºáá¬ážáá±á¬ á¡áááºážáá»á¬ážá០áááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºá á±ááẠááááºážááááºážááŒááºážááẠááá¬ážáá»áŸáááŸá¯ áááŸáááá·áºá¡ááŒáẠááŸááºáá¬ááºáá¯á¶ážá áœá²ááŸá¯ ááá¯ážáá¬áá¯á¶áá¬ááŒá áºáááºá ááŸááºáá¬ážáá±á¬á¡áááºážáá»á¬ážááẠá¡áá¬áááºááœáẠáááºááŸá¬ážááẠá á®á ááºáá¬ážááá·áº á á¶ááá¯ááºáá±á¬ API sun.misc.Unsafe::defineAnonymousClass á¡ááœáẠááá¯á¡ááºááŸá¯ááá¯áááºáž áááºááŸá¬ážáá±ážáá«áááºá - ZGC (Z Garbage Collector) á¡ááŸáá¯ááºá á¯áá±á¬ááºážáá°ááᯠáááºááŒáááºááŒá®áž áá»ááºáá»ááºááŒáá·áºááŒáá·áº á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠá¡áááºááá·áºááŒá áºáá±ááŒá±á¬ááºáž á¡ááá¡ááŸááºááŒá¯áá¬ážáááºá ZGC ááẠpassive áá¯ááºááœáẠáááºáááºáá±ááŒá®áž á¡ááŸáá¯ááºá á¯áá±á¬ááºážááŸá¯ááŒá±á¬áá·áº á¡áá»áááºááᯠáááºááá¯ááºááá»áŸ áá»áŸá±á¬á·áá»áá±ážááẠ(ZGC ááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá»áááºááẠ10 ms ááẠááá»á±á¬áºááœááºáá«) ááŸáá·áº á¡ááœááºá¡á á¬áž áá¬ááááºážá០megabytes á¡áá»á¬ážá¡ááŒá¬ážá០terabytes á¡áá»á¬ážá¡ááŒá¬ážá¡áá áá±ážáááºáá±á¬ ááŒá®ážáá¬ážáá±á¬ á¡á á¯á¡áá±ážáá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºááá¯ááºáááºá
- áááºááŒáááºááŒá®áž áá±áá°áá»á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠá¡áááºááá·áºááœá±á·ááŸáááááºá
á¡ááŸáá¯ááºááááºážáá°Shenandoah áá±áá¹ááááááºááŒááºáž (Low-Pause-Time Garbage Collector) ááŒáá·áº áá¯ááºáá±á¬ááºááŒááºážá Shenandoah ááᯠRed Hat ááŸáá®ááœááºáá²á·ááŒá®áž Java á¡ááá®áá±ážááŸááºážáá»á¬ážááá¯áá¯ááºáá±á¬ááºááŒááºážááŸáá·áºá¡ááŒáá¯áẠááá·áºááŸááºážáá±ážáá¯ááºáá±á¬ááºááŒááºážááŒáá·áº á¡ááŸáá¯ááºá á¯áá±á¬ááºážááŸá¯á¡ááœááºáž áá¯ááºáá¯ááºá¡áá»áááºááá¯áá»áŸá±á¬á·áá»áá±ážááá·áº algorithm ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááœáẠááŸááºáá¬ážááœááºááŒá áºáá«áááºá á¡ááŸáá¯ááºááááºážáá°á០ááááºáááºááá·áº ááŸá±á¬áá·áºááŸá±ážááŸá¯á á¡ááœááºá¡á á¬ážááẠááŒáá¯áááºááŸááºážáááá¯ááºááŒá®áž á¡ááŸáá¯ááºáá¯á¶á á¡ááœááºá¡á á¬ážáá±á«áºááœááºáá°áááºááŒááºážáááŸááá±á 200 MB ááŸáá·áº 200 GB á¡á á¯á¡áá±ážá¡ááœáẠááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážááẠáááºáá°áá»áááá·áºááẠ(ááœááºááá¬áá²á· 50 ms áááºáá»á±á¬áºááœááºááŒá®áž á¡áá»á¬ážá¡á¬ážááŒáá·áº 10 ms á¡ááœááºáž); - áá¶á·ááá¯ážááŸá¯ááᯠáááºááŒáááºá¡á±á¬ááºááŒá¯áá¯ááºááŒá®áž áá¬áá¬á
áá¬ážááá¯á· ááááºáááºáá²á·áááºá
á á¬áá¬ážáá¯á¶ážáá»á¬áž - á á¬áá¯á¶ážá¡ááœááºáá»á¬ážááᯠááá¯á¶ážáá² ááá±á¬ááºááœáẠáá°áááºážá á¬áá¬ážáá±á¬áºáááºááᯠááááºážááááºážááŒááºážáááŒá¯áá² áááºážááŒá áºáá¯ááºááœáẠá á¬ááŒá±á¬ááºážáá±á«ááºážáá»á¬ážá áœá¬ á á¬áá¬ážáá±áá¬ááᯠááá·áºááœááºážááá¯ááºá á±ááá·áº string literals áá¯á¶á á¶á¡áá áºá ááá±á¬ááºááᯠááŸá áºáááºááá¯ážáá¬ážááŒáá·áº áá±á¬ááºáááºáá¬ážáááºáá¥ááá¬á áá¯ááºá¡á á¬áž
á á¬áááºáž html = " » +
"\n\t" + " » +
"\n\t\t" + " \"Java 1 áá¬áá«ááŒá®!" » +
"\n\t" + " » +
"\n" + " ";áááºáááºááŸááºááá¯ááºáááº-
html = """ á á¬ááŒá±á¬ááºáž
» Java 1\
áá®ááŸá¬!
"""; -
ááŒááºáááºáá®ááá¯ááºážáá¯ááºáá¬ážáááºá á¡ááœá±á¡ááŸá ẠDatagramSocket APIá java.net.DatagramSocket ááŸáá·áº java.net.MulticastSocket ááá¯á·á áá±á¬ááºážááœááºážáá±á¬ á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááᯠá¡ááŸá¬ážááŸá¬áááºááŸáá·áº ááááºážááááºážááẠááá¯ááá¯ááœááºáá°áá±á¬ áá±ááºáá®á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááŒáá·áº á¡á á¬ážááá¯ážáá¬ážááŒá®áž ááá±á¬áá»ááºá¡ááœááºáž áááºáá®ážáá¬ážááá·áº virtual stream áá»á¬ážááŸáá·áºáááºáž ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºáloom . ááŸáááŒá®ážáá¬ážáá¯ááºááŸáá·áº ááá¯ááºáááºáá®ááŸá¯áááŒá áºááá¯ááºááá·áº á¡ááŒá±á¡áá±ááœááºá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá±á¬ááºážááᯠáááºááŸá¬ážááŒááºážáááŒá¯áá² jdk.net.usePlainDatagramSocketImpl ááœá±ážáá»ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á ááœáá·áºááá¯ááºáááºá - áá¯áááá¡ááŒááẠá
ááºážáááºá¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡ááá¯ááŒá¯áá²á·áááºá
áá¯á¶á ᶠááá¯ááºáá®ááŸá¯ á á áºáá±ážáá¬ážáá±á¬áááºááá¯ážááá¯ááá°ááẠlocal variable ááá¯áá»ááºáá»ááºážáááºááŸááºááá¯ááºá á±ááá·áº "instanceof" operator ááœááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠâString s = (String) objâ ááᯠá¡ááá¡áááºáž á¡áááá¹áá«ááºááœáá·áºááá¯ááŒááºážáááŒá¯áá² âif (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}â áᯠáá±ážááá¯ááºáááºáááŒá áºáá²á·áááº-
if (obj instanceof Group) {
á¡á¯ááºá ᯠ= (á¡á¯ááºá á¯) obj;
var entries = group.getEntries();
}ááá¯ááẠ"Group group = (Group) obj" áá°áá±á¬ á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáááŸááá² áááºáá¯ááºááá¯ááºáááº-
á¡áááºá (obj á¡á¯ááºá á¯á¡á¯ááºá á¯áá¥ááá¬) {
var entries = group.getEntries();
} -
á¡ááá¯ááŒá¯áááºá áá±á¬á·áá»ááºá áá¬ážáá¯á¶áž "" ááá¯áááá ááºážáááºá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á á¶áá»ááẠ"á á¡áááºážáá»á¬ážáááºááŸááºááŒááºážá¡ááœáẠáá»á áºáá»á áºáá±á¬áá¯á¶á á¶ááᯠáá¶á·ááá¯ážáá±ážáá±á¬á áááºážááẠááá·áºá¡á¬áž equals(), hashCode() ááŸáá·áº toString() áá²á·ááá¯á·áá±á¬ á¡áá»áá¯ážáá»áá¯ážáá±á¬á¡ááá·áºáááá·áºáááºážáááºážáá»á¬ážááᯠááŒááºáá¬ážá áœá¬áááºááŸááºááŒááºážá០ááŸá±á¬ááºááŒááºááá¯ááºá á±ááá·áº á¡ááŒá¯á¡áá°áááŒá±á¬ááºážáá²áá±á¬áááºáááºáá»á¬ážááœááºáᬠáá±áá¬ááá¯ááááºážáááºážáá¬ážááá·áºááá á¹á áá»á¬ážááœááºááŒá áºáááºá class áá áºáá¯ááẠequals(), hashCode() ááŸáá·áº toString() áááºážáááºážáá»á¬ážá á á¶á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á áááºážááẠáááºážááá¯á·á ááŸááºážáááºážááŒááºáá¬ážáá±á¬ á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáááŸááá² áá¯ááºáá±á¬ááºááá¯ááºáááº-á¡áá»á¬ážáá°ááŸá¬ áááºááœá±ááœáŸá²ááŒá±á¬ááºážááŸá¯ ááŸááºáááºáž(LocalDate áááºá áœá²á
ááŸá áºáááá¬á
á á¬ááŒá±á¬ááºážáá±á¬áºááŒáá»ááº) {}á€ááŒá±ááŒá¬áá»ááºááẠáááºáá±á¬ááºáá°ááŸáá·áº getter áááºážáááºážáá»á¬ážá¡ááŒáẠequals(), hashCode() ááŸáá·áº toString() áááºážáááºážáá»á¬ážá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠááá·áºááœááºážáá±ážáááºááŒá áºáááºá
-
á¡ááá¯ááŒá¯áááºá MemorySegmentá MemoryAddress ááŸáá·áº MemoryLayout abstractions á¡áá áºáá»á¬ážááᯠááŒáá¯ážááá¯ááºááŒááºážááŒáá·áº Java á¡ááá®áá±ážááŸááºážáá»á¬áž Java á¡á á¯á¡áá±ážá ááŒááºáááŸááºáá¬ááºáá±ááá»á¬ážááᯠáá¯á¶ááŒá¯á¶ááŒá®áž áááá±á¬ááºá áœá¬ áááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºá á±ááá·áº Foreign-Memory Access API á áá¯áááá¡á ááºážááŒáá·áºááŸá¯ááŸá¯á -
ááááºá áœááºáž áá±á¬á·ááºáá»ááŒááºážááᯠáá»áŸá±á¬á·áá»ááẠHotSpot JVM ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº Biased Locking optimization áááºážááá¬ááᯠáááºááá·áºáá¬ážáááºá á€áááºážááá¬ááẠáá±ááºáá® CPU áá»á¬ážá០áá¶á·ááá¯ážáá±ážáá±á¬ á¡áá¯ááŒá° ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážáá«ááá·áº á áá áºáá»á¬ážááŸáá·áº áááºááá¯ááºááŸá¯ áá¯á¶ážááŸá¯á¶ážááœá¬ážááŒá®áž áááºážá ááŸá¯ááºááœá±ážááŸá¯ááŒá±á¬áá·áº ááááºážááááºážááẠáá¯ááºáá¬ážá¡ááºá¡á¬áž á¡ááœááºááá¯á¡ááºáá«áááºá -
ááŒá±ááŒá¬áá²á·áááºá áá±ááºááá®áá±á¬ ááá¹ááá¬ážRMI á¡áááºááœááºážááŒááºážá áá±á¬ááºááœááºááŸáááŸá¯ááœáẠáááºááŸá¬ážáá«áááºá RMI Activation ááẠáá±ááºáá±á¬ááºáá»áá±ááŒá®ááŒá áºááŒá®áž Java 8 ááœáẠááœá±ážáá»ááºááŸá¯á¡áá»áá¯ážá¡á á¬ážááá¯á· áááºážáááºážááœá¬ážáᬠáá±ááºáá áºá¡áá±á·á¡áá»áá·áºááœáẠáááºááá·áºá¡áá«á០á¡áá¯á¶ážááááºááŒá±á¬ááºáž ááŸááºáá¬ážááá«áááºá -
áá»ááºááá¯áẠJavaScript á¡ááºáá»ááºááŒá¶á· Java SE 11 ááœáẠááá·áºááœááºáá¬ážáááºá -
áááºááŸá¬ážáá²á·áááºá Solaris OS ááŸáá·áº SPARC áááá¯áááºáá¬áá»á¬ážá¡ááœáẠááááºáááºážáá»á¬áž (Solaris/SPARCá Solaris/x64 ááŸáá·áº Linux/SPARC)á á€ááááºáááºážáá»á¬ážááᯠáááºááŸá¬ážááŒááºážááŒáá·áº á¡ááá¯ááºážá¡ááá¯ááºážá¡á¬áž Solaris- ááŸáá·áº SPARC áá®ážááá·áºá¡ááºá¹áá«áááºáá»á¬ážááᯠá¡áá»áááºáááŒá¯ááºážáá² OpenJDK áááºáá±á¬ááºááŸá¯á¡áá áºáá»á¬ážá ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠá¡ááŸáááºááŒáŸáá·áºááá¯ááºá á±áááºááŒá áºáááºá
source: opennet.ru