ืžื”ื“ื•ืจืช Java SE 15

ืœืื—ืจ ืฉื™ืฉื” ื—ื•ื“ืฉื™ื ืฉืœ ืคื™ืชื•ื—, ืื•ืจืงืœ ืฉื•ื—ืจืจ ืคืœื˜ืคื•ืจืžื” Java SE 15 (Java Platform, Standard Edition 15), ืคืจื•ื™ืงื˜ OpenJDK ื‘ืงื•ื“ ืคืชื•ื— ืžืฉืžืฉ ื›ื™ื™ืฉื•ื ื™ื™ื—ื•ืก. Java SE 15 ืฉื•ืžืจ ืขืœ ืชืื™ืžื•ืช ืœืื—ื•ืจ ืขื ืžื”ื“ื•ืจื•ืช ืงื•ื“ืžื•ืช ืฉืœ ืคืœื˜ืคื•ืจืžืช Java; ื›ืœ ืคืจื•ื™ืงื˜ื™ Java ืฉื ื›ืชื‘ื• ื‘ืขื‘ืจ ื™ืคืขืœื• ืœืœื ืฉื™ื ื•ื™ื™ื ื›ืืฉืจ ื™ื•ืฉืงื• ืชื—ืช ื”ื’ืจืกื” ื”ื—ื“ืฉื”. ืžื•ื›ื ื™ื ืœื”ืชืงื ื” ืฉืœ Java SE 15 build (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 ืกื™ื‘ื™ื•ืช ืžืฆื™ื’ ื‘ื™ืฆื•ืขื™ื ื“ื•ืžื™ื ืœ-ECDSA ืขื ืขืงื•ืžื” ืืœื™ืคื˜ื™ืช secp256r1 ื•ืžืคืชื— ืฉืœ 128 ืกื™ื‘ื™ื•ืช.
  • ื ื•ืกืฃ ืชืžื™ื›ื” ื ื™ืกื™ื•ื ื™ืช ื‘ืžื—ืœืงื•ืช ื•ืžืžืฉืงื™ื ืื˜ื•ืžื™ื, ืฉืื™ื ื ื™ื›ื•ืœื™ื ืœืฉืžืฉ ืžื—ืœืงื•ืช ื•ืžืžืฉืงื™ื ืื—ืจื™ื ื›ื“ื™ ืœืจืฉืช, ืœื”ืจื—ื™ื‘ ืื• ืœืขืงื•ืฃ ืืช ื”ื™ื™ืฉื•ื. ืžื—ืœืงื•ืช ืื˜ื•ืžื•ืช ืžืกืคืงื•ืช ื’ื ื“ืจืš ื”ืฆื”ืจืชื™ืช ื™ื•ืชืจ ืœื”ื’ื‘ื™ืœ ืืช ื”ืฉื™ืžื•ืฉ ื‘- superclass ืžืืฉืจ ืžืฉื ื” ื’ื™ืฉื”, ื‘ื”ืชื‘ืกืก ืขืœ ืจื™ืฉื•ื ืžืคื•ืจืฉ ืฉืœ ืชืช ื”ืžื—ืœืงื•ืช ื”ืžื•ืชืจื•ืช ืœื”ืจื—ื‘ื”.

    ื—ื‘ื™ืœื” com.example.geometry;

    ื›ื™ืชื” ืื˜ื•ืžื” ืฆื™ื‘ื•ืจื™ืช Shape
    ืžืชื™ืจ com.example.polar.Circle,
    com.example.quad.Rectangle,
    com.example.quad.simple.Square {โ€ฆ}

  • ื ื•ืกืฃ ืชืžื™ื›ื” ื‘ืžื—ืœืงื•ืช ื ืกืชืจื•ืช ืฉืœื ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ืŸ ื™ืฉื™ืจื•ืช ืขืœ ื™ื“ื™ ืงื•ื“ ื”ื‘ืชื™ื ืฉืœ ืžื—ืœืงื•ืช ืื—ืจื•ืช. ืžื˜ืจืช ื”ืžืคืชื— ืฉืœ ืžื—ืœืงื•ืช ื ืกืชืจื•ืช ื”ื™ื ืœื”ืฉืชืžืฉ ื‘ืžืกื’ืจื•ืช ื”ื™ื•ืฆืจื•ืช ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ืžื—ืœืงื•ืช ื‘ื–ืžืŸ ืจื™ืฆื” ื•ืžืฉืชืžืฉื•ืช ื‘ื”ืŸ ื‘ืขืงื™ืคื™ืŸ, ื‘ืืžืฆืขื•ืช ื”ืฉืชืงืคื•ืช. ืœืžื—ืœืงื•ืช ื›ืืœื” ื™ืฉ ื‘ื“ืจืš ื›ืœืœ ืžื—ื–ื•ืจ ื—ื™ื™ื ืžื•ื’ื‘ืœ, ื›ืš ืฉืชื—ื–ื•ืงืชืŸ ืœืฆื•ืจืš ื’ื™ืฉื” ืžืฉื™ืขื•ืจื™ื ืฉื ื•ืฆืจื• ืกื˜ื˜ื™ืช ืื™ื ื” ืžื•ืฆื“ืงืช ื•ืจืง ืชื•ื‘ื™ืœ ืœืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืžื•ื’ื‘ืจืช. ืžื—ืœืงื•ืช ื ืกืชืจื•ืช ื’ื ืžื‘ื˜ืœื•ืช ืืช ื”ืฆื•ืจืš ื‘-API ื”ืœื ืกื˜ื ื“ืจื˜ื™ sun.misc.Unsafe::defineAnonymousClass, ืืฉืจ ืžื™ื•ืขื“ ืœื”ืกืจื” ื‘ืขืชื™ื“.
  • ืืกืคืŸ ื”ืืฉืคื” ZGC (Z Garbage Collector) ื™ื•ืฆื‘ ื•ืžื•ื›ืจ ื›ืžื•ื›ืŸ ืœืฉื™ืžื•ืฉ ื ืจื—ื‘. ZGC ืคื•ืขืœ ื‘ืžืฆื‘ ืคืกื™ื‘ื™, ืžืžื–ืขืจ ื›ื›ืœ ื”ืืคืฉืจ ืืช ื”ืฉื”ื™ื™ื” ืขืงื‘ ืื™ืกื•ืฃ ืืฉืคื” (ื–ืžืŸ ื”ืกื˜ื™ื™ื” ื‘ืฉื™ืžื•ืฉ ื‘-ZGC ืื™ื ื• ืขื•ืœื” ืขืœ 10 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื”) ื•ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืขื ืขืจื™ืžื•ืช ืงื˜ื ื•ืช ื•ืขืฆื•ืžื•ืช ื›ืื—ื“, ื‘ื’ื•ื“ืœ ืฉืœ ื›ืžื” ืžืื•ืช ืžื’ื”-ื‘ื™ื™ื˜ ื•ืขื“ ืœื˜ืจื”-ื‘ื™ื™ื˜ ืจื‘ื™ื.
  • ืžื™ื•ืฆื‘ ื•ื ืžืฆื ืžื•ื›ืŸ ืœืฉื™ืžื•ืฉ ื›ืœืœื™
    ืื•ืกืฃ ื–ื‘ืœ ืืœืœื™, ืขื‘ื•ื“ื” ืขื ื”ืคืกืงื•ืช ืžื™ื ื™ืžืœื™ื•ืช (Low-Pause-Time Garbage Collector). Shenandoah ืคื•ืชื—ื” ืขืœ ื™ื“ื™ Red Hat ื•ื”ื™ื ื‘ื•ืœื˜ืช ื‘ืฉื™ืžื•ืฉ ื‘ืืœื’ื•ืจื™ืชื ืฉืžืคื—ื™ืช ืืช ื–ืžืŸ ื”ื”ืฉื‘ืชื” ื‘ืžื”ืœืš ืื™ืกื•ืฃ ื”ืืฉืคื” ืขืœ ื™ื“ื™ ื”ืคืขืœืช ื ื™ืงื•ื™ ื‘ืžืงื‘ื™ืœ ืœื‘ื™ืฆื•ืข ื™ื™ืฉื•ืžื™ Java. ื’ื•ื“ืœ ื”ืขื™ื›ื•ื‘ื™ื ืฉืžืฆื™ื’ ืืกืคืŸ ื”ืืฉืคื” ืฆืคื•ื™ ื•ืื™ื ื• ืชืœื•ื™ ื‘ื’ื•ื“ืœ ื”ืขืจื™ืžื”, ื›ืœื•ืžืจ. ืขื‘ื•ืจ ืขืจืžื•ืช ืฉืœ 200 MB ื•- 200 GB ื”ืขื™ื›ื•ื‘ื™ื ื™ื”ื™ื• ื–ื”ื™ื (ืืœ ืชืฆื ืžืขื‘ืจ ืœ-50 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื” ื•ื‘ื“ืจืš ื›ืœืœ ืชื•ืš 10 ืฉื ื™ื•ืช);

  • ื”ืชืžื™ื›ื” ื™ื•ืฆื‘ื” ื•ื”ื•ื›ื ืกื” ืœืฉืคื” ื‘ืœื•ืงื™ื ืฉืœ ื˜ืงืกื˜ - ืฆื•ืจื” ื—ื“ืฉื” ืฉืœ ืžื™ืœื•ืœื™ืช ืžื—ืจื•ื–ืช ื”ืžืืคืฉืจืช ืœื›ืœื•ืœ ื ืชื•ื ื™ ื˜ืงืกื˜ ืžืจื•ื‘ื™ ืฉื•ืจื•ืช ื‘ืงื•ื“ ื”ืžืงื•ืจ ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘ื‘ืจื™ื—ืช ืชื•ื•ื™ื ื•ืฉื™ืžื•ืจ ืขื™ืฆื•ื‘ ื”ื˜ืงืกื˜ ื”ืžืงื•ืจื™ ื‘ื‘ืœื•ืง. ื”ื‘ืœื•ืง ืžืžื•ืกื’ืจ ืขืœ ื™ื“ื™ ืฉืœื•ืฉ ืžืจื›ืื•ืช ื›ืคื•ืœื•ืช.

    ืœืžืฉืœ, ื‘ืžืงื•ื ืงื•ื“

    ืžื—ืจื•ื–ืช html = " ยป+
    "\n\t" + " ยป+
    "\n\t\t" + " \"Java 1 ื›ืืŸ!\" ยป+
    "\n\t" + " ยป+
    "\n" + " ";

    ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ:

    ืžื—ืจื•ื–ืช html = """


    ยปJava 1\
    ื›ืืŸ!

    """;

  • ืขื•ืฆื‘ ืžื—ื“ืฉ ืžื“ื•ืจ ืงื•ื“ื ืฉืœ DatagramSocket API. ื”ื”ื˜ืžืขื•ืช ื”ื™ืฉื ื•ืช ืฉืœ java.net.DatagramSocket ื•-java.net.MulticastSocket ื”ื•ื—ืœืคื• ื‘ื™ื™ืฉื•ื ืžื•ื“ืจื ื™ ืฉืงืœ ื™ื•ืชืจ ืœืื™ืคื•ื™ ื•ืœืชื—ื–ืง ืื•ืชื•, ื•ื”ื•ื ื’ื ืชื•ืื ืœื–ืจืžื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื ืฉืคื•ืชื—ื• ื‘ืžืกื’ืจืช ื”ืคืจื•ื™ืงื˜ ื ื•ืœ. ื‘ืžืงืจื” ืฉืœ ืื™ ืชืื™ืžื•ืช ืืคืฉืจื™ืช ืœืงื•ื“ ืงื™ื™ื, ื”ืžื™ืžื•ืฉ ื”ื™ืฉืŸ ืœื ื”ื•ืกืจ ื•ื ื™ืชืŸ ืœื”ืคืขื™ืœื• ื‘ืืžืฆืขื•ืช ื”ืืคืฉืจื•ืช jdk.net.usePlainDatagramSocketImpl.
  • ื”ื•ืฆืข ื™ื™ืฉื•ื ื ื™ืกื™ื•ื ื™ ืฉื ื™ ื”ืชืืžืช ืชื‘ื ื™ืช ื‘ืื•ืคืจื˜ื•ืจ "instanceof", ื”ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืžื™ื“ ืžืฉืชื ื” ืžืงื•ืžื™ ื›ื“ื™ ืœื’ืฉืช ืœืขืจืš ื”ืžืกื•ืžืŸ. ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืžื™ื“ ืœื›ืชื•ื‘ "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" ืžื‘ืœื™ ืœื”ื’ื“ื™ืจ ื‘ืžืคื•ืจืฉ "String s = (String) obj".

    ื–ื” ื”ื™ื”:

    if (instanceof Group) {
    ืงื‘ื•ืฆืช ืงื‘ื•ืฆื” = (Group)obj;
    var entries = group.getEntries();
    }

    ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœื”ืกืชื“ืจ ื‘ืœื™ ื”ื”ื’ื“ืจื” "ืงื‘ื•ืฆื” ืงื‘ื•ืฆืชื™ืช = (ืงื‘ื•ืฆืช) obj":

    if (ืžื•ืคืข ืื•ื‘ื™ื™ืงื˜ ืฉืœ ืงื‘ื•ืฆืช ืงื‘ื•ืฆื”) {
    var entries = group.getEntries();
    }

  • ืžื•ึผืฆึธืข ื™ื™ืฉื•ื ื ื™ืกื™ื•ื ื™ ืฉื ื™ ืฉืœ ืžื™ืœืช ื”ืžืคืชื— "ืฉื™ื", ื”ืžืกืคืง ื˜ื•ืคืก ืงื•ืžืคืงื˜ื™ ืœื”ื’ื“ืจืช ืžื—ืœืงื•ืช, ื”ืžืืคืฉืจ ืœืš ืœื”ื™ืžื ืข ืžื”ื’ื“ืจื” ืžืคื•ืจืฉืช ืฉืœ ืฉื™ื˜ื•ืช ืฉื•ื ื•ืช ื‘ืจืžื” ื ืžื•ื›ื” ื›ื’ื•ืŸ equals(), hashCode() ื•-toString() ื‘ืžืงืจื™ื ื‘ื”ื ื”ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ืจืง ื‘ืฉื“ื•ืช ืฉื”ืชื ื”ื’ื•ืชื ืื™ื ื” ืžืฉืชื ื”. ื›ืืฉืจ ืžื—ืœืงื” ืžืฉืชืžืฉืช ื‘ืžื™ืžื•ืฉื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ืฉืœ ื”ืžืชื•ื“ื•ืช equals(), hashCode() ื•-toString(), ื”ื™ื ื™ื›ื•ืœื” ืœื”ืกืชื“ืจ ืœืœื ื”ื”ื’ื“ืจื” ื”ืžืคื•ืจืฉืช ืฉืœื”ืŸ:

    ืจืฉื•ืžื” ืฆื™ื‘ื•ืจื™ืช BankTransaction(LocalDate date,
    ื›ืžื•ืช ื›ืคื•ืœื”
    ืชื™ืื•ืจ ืžื—ืจื•ื–ืช) {}

    ื”ื”ืฆื”ืจื” ื”ื–ื• ืชื•ืกื™ืฃ ืื•ื˜ื•ืžื˜ื™ืช ืžื™ืžื•ืฉื™ื ืฉืœ ื”ืžืชื•ื“ื•ืช equals(), hashCode() ื•-toString() ื‘ื ื•ืกืฃ ืœืฉื™ื˜ื•ืช ื”ื‘ื ืื™ ื•ื”-getter.

  • ืžื•ึผืฆึธืข ืชืฆื•ื’ื” ืžืงื“ื™ืžื” ืฉื ื™ื™ื” ืฉืœ ื”-API ืฉืœ Foreign-Memory Access, ื”ืžืืคืฉืจืช ืœื™ื™ืฉื•ืžื™ Java ืœื’ืฉืช ื‘ืฆื•ืจื” ืžืื•ื‘ื˜ื—ืช ื•ื™ืขื™ืœื” ืœืื–ื•ืจื™ ื–ื™ื›ืจื•ืŸ ืžื—ื•ืฅ ืœืขืจืžืช Java ืขืœ ื™ื“ื™ ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ื”ื”ืคืฉื˜ื•ืช ื”ื—ื“ืฉื•ืช ืฉืœ MemorySegment, MemoryAddress ื•-MemoryLayout.
  • ื ึธื›ึถื” ื•ื”ื•ืฆื™ืื” ืžืฉื™ืžื•ืฉ ืืช ื˜ื›ื ื™ืงืช ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื ืขื™ืœื” ืžื•ื˜ื” ื”ืžืฉืžืฉืช ื‘-HotSpot JVM ื›ื“ื™ ืœื”ืคื—ื™ืช ืืช ืชืงื•ืจื” ืฉืœ ื ืขื™ืœื”. ื˜ื›ื ื™ืงื” ื–ื• ืื™ื‘ื“ื” ืืช ื”ืจืœื•ื•ื ื˜ื™ื•ืช ืฉืœื” ื‘ืžืขืจื›ื•ืช ืขื ื”ื•ืจืื•ืช ืื˜ื•ืžื™ื•ืช ื”ืžืกื•ืคืงื•ืช ืขืœ ื™ื“ื™ ืžืขื‘ื“ื™ื ืžื•ื“ืจื ื™ื™ื, ื•ื”ื™ื ืขืชื™ืจืช ืขื‘ื•ื“ื” ืœืชื—ื–ื•ืงื” ื‘ืฉืœ ื”ืžื•ืจื›ื‘ื•ืช ืฉืœื”.
  • ื”ื•ื›ืจื– ืžื ื’ื ื•ืŸ ืžื™ื•ืฉืŸ ื”ืคืขืœืช RMI, ืืฉืจ ื™ื•ืกืจ ื‘ืžื”ื“ื•ืจื” ืขืชื™ื“ื™ืช. ื™ืฆื•ื™ืŸ ื›ื™ ื”ืคืขืœืช RMI ืžื™ื•ืฉื ืช, ื ื“ื—ืชื” ืœืงื˜ื’ื•ืจื™ื” ืฉืœ ืื•ืคืฆื™ื” ื‘-Java 8 ื•ื›ืžืขื˜ ืืฃ ืคืขื ืœื ื ืขืฉื” ื‘ื” ืฉื™ืžื•ืฉ ื‘ืคืจืงื˜ื™ืงื” ื”ืžื•ื“ืจื ื™ืช.
  • ื ืžื—ืง ืžื ื•ืข JavaScript ืงึทืจื ึทืฃ, ืฉื”ื•ืฆื ืžืฉื™ืžื•ืฉ ื‘-Java SE 11.
  • ื”ื•ืกืจ ื™ืฆื™ืื•ืช ืขื‘ื•ืจ ืžืขื‘ื“ื™ Solaris OS ื•-SPARC (Solaris/SPARC, Solaris/x64 ื•-Linux/SPARC). ื”ืกืจืช ื™ืฆื™ืื•ืช ืืœื• ืชืืคืฉืจ ืœืงื”ื™ืœื” ืœื”ืื™ืฅ ืืช ื”ืคื™ืชื•ื— ืฉืœ ืชื›ื•ื ื•ืช OpenJDK ื—ื“ืฉื•ืช ืžื‘ืœื™ ืœื‘ื–ื‘ื– ื–ืžืŸ ืขืœ ืชื—ื–ื•ืงืช ืชื›ื•ื ื•ืช ืกืคืฆื™ืคื™ื•ืช ืฉืœ Solaris ื•-SPARC.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”