Java SE 27 āĻāĻŦāĻ‚ OpenJDK 27 āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇

āĻ›āϝāĻŧ āĻŽāĻžāϏ āϧāϰ⧇ āωāĻ¨ā§āύāϝāĻŧāύ⧇āϰ āĻĒāϰ, āĻ“āϰāĻžāĻ•āϞ āϜāĻžāĻ­āĻž āĻāϏāχ ⧍ā§Ŧ (āϜāĻžāĻ­āĻž āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ, āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻĄāĻŋāĻļāύ ⧍ā§Ŧ) āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰ⧇āϛ⧇, āϝāĻž āĻāϰ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻ“āĻĒ⧇āύāĻœā§‡āĻĄāĻŋāϕ⧇ (OpenJDK) āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻ•āĻŋāϛ⧁ āĻĄā§‡āĻĒā§āϰāĻŋāϕ⧇āĻŸā§‡āĻĄ āĻĢāĻŋāϚāĻžāϰ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻž āĻ›āĻžāĻĄāĻŧāĻž, āϜāĻžāĻ­āĻž āĻāϏāχ ⧍ā§Ŧ āϜāĻžāĻ­āĻž āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡āϰ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻžāĻ•āĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āĻ•āĻŽā§āĻĒā§āϝāĻžāϟāĻŋāĻŦāĻŋāϞāĻŋāϟāĻŋ āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–ā§‡â€”āφāϗ⧇ āϞ⧇āĻ–āĻž āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āϜāĻžāĻ­āĻž āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āύāϤ⧁āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āϚāĻžāϞāĻžāϞ⧇āĻ“ āĻ…āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āϜāĻžāĻ­āĻž āĻāϏāχ ⧍ā§Ŧ (āĻœā§‡āĻĄāĻŋāϕ⧇, āĻœā§‡āφāϰāχ, āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻœā§‡āφāϰāχ)-āĻāϰ āϰ⧇āĻĄāĻŋ-āϟ⧁-āχāύāĻ¸ā§āϟāϞ āĻŦāĻŋāĻ˛ā§āĻĄāϗ⧁āϞ⧋ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ Linux (x86_64, AArch64), Windows (x86_64) āĻāĻŦāĻ‚ macOS (x86_64, AArch64)āĨ¤ OpenJDK āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻ•āĻļāĻŋāϤ, Java SE 27 āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāϟāĻŋ GPLv2 āϞāĻžāχāϏ⧇āĻ¨ā§āϏ⧇āϰ āĻ…āϧ⧀āύ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻāĻŦāĻ‚ āĻāϤ⧇ GNU ClassPath Exception āϰāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻŦāĻžāĻŖāĻŋāĻœā§āϝāĻŋāĻ• āĻĒāĻŖā§āϝ⧇āϰ āϏāĻžāĻĨ⧇ āĻĄāĻžāχāύāĻžāĻŽāĻŋāĻ• āϞāĻŋāĻ™ā§āĻ•āĻŋāĻ‚āϝāĻŧ⧇āϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧāĨ¤

Java SE 27-āϕ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āϰāĻŋāϞāĻŋāϜ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻļā§āϰ⧇āĻŖā§€āĻŦāĻĻā§āϧ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϰāĻŋāϞāĻŋāϜ āύāĻž āφāϏāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āĻĻā§€āĻ°ā§āϘāĻŽā§‡āϝāĻŧāĻžāĻĻā§€ āϏāĻžāĻĒā§‹āĻ°ā§āϟ (LTS) āĻļāĻžāĻ–āĻžāϟāĻŋ āĻšāĻŦ⧇ Java SE 25, Java SE 21, āĻŦāĻž Java SE 17, āϝāĻžāϰ āφāĻĒāĻĄā§‡āϟ āϝāĻĨāĻžāĻ•ā§āϰāĻŽā§‡ ⧍ā§Ļā§Šā§Š, ⧍ā§Ļā§Šā§§, āĻāĻŦāĻ‚ ⧍ā§Ļ⧍⧝ āϏāĻžāϞ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻž āĻšāĻŦ⧇ (āϏāĻžāϧāĻžāϰāĻŖāϤ āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ ⧍ā§Ļā§Šā§Ļ, ⧍ā§Ļā§¨ā§Ž, āĻāĻŦāĻ‚ ⧍ā§Ļ⧍ā§Ŧ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āωāĻĒāϞāĻŦā§āϧ āĻĨāĻžāĻ•āĻŦ⧇)āĨ¤ Java SE 8 LTS āĻļāĻžāĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻ°ā§āϧāĻŋāϤ āϏāĻžāĻĒā§‹āĻ°ā§āϟ ⧍ā§Ļā§Šā§Ļ āϏāĻžāϞ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻāĻŦāĻ‚ Java SE 11-āĻāϰ āϜāĻ¨ā§āϝ ⧍ā§Ļā§Šā§¨ āϏāĻžāϞ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻ…āĻŦā§āϝāĻžāĻšāϤ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

Java SE 27 (1, 2, 3, 4)-āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āϰāϝāĻŧ⧇āϛ⧇:

  • āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇, āϏāĻŽāĻ¸ā§āϤ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ G1 (āĻ—āĻžāĻ°ā§āĻŦ⧇āϜ-āĻĢāĻžāĻ°ā§āĻ¸ā§āϟ) āĻ—āĻžāĻ°ā§āĻŦ⧇āϜ āĻ•āĻžāϞ⧇āĻ•ā§āϟāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϝāĻž āĻĒā§‚āĻ°ā§āĻŦ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϤ⧋āĨ¤ G1 āωāĻšā§āϚ āĻŽā§‡āĻŽāϰāĻŋ āϧāĻžāϰāĻŖāĻ•ā§āώāĻŽāϤāĻž āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒā§āϰāϏ⧇āϏāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻŦāĻ‚ āωāĻšā§āϚ āĻĨā§āϰ⧁āĻĒ⧁āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āĻ…āύ⧁āĻŽāĻžāύāϝ⧋āĻ—ā§āϝ āĻ˛ā§āϝāĻžāĻŸā§‡āĻ¨ā§āϏāĻŋāϰ āĻ­āĻžāϰāϏāĻžāĻŽā§āϝ āϰāĻ•ā§āώāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āϏāĻŽāϝāĻŧ, G1 āĻŽā§‡āĻŽāϰāĻŋāϕ⧇ āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āϛ⧋āϟ āĻ…āĻžā§āϚāϞ⧇ āĻŦāĻŋāĻ­āĻ•ā§āϤ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āχ āĻ…āĻžā§āϚāϞāϗ⧁āϞ⧋āϕ⧇ āĻ…āĻ—ā§āϰāĻžāϧāĻŋāĻ•āĻžāϰ āĻĻ⧇āϝāĻŧ āϝ⧇āĻ–āĻžāύ⧇ āĻŦ⧇āĻļāĻŋ āĻ…āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāĻŦāĻ‚ āĻ•āĻŽ āϏāĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āĻĄā§‡āϟāĻž āĻĨāĻžāϕ⧇āĨ¤
  • āĻšāϟāĻ¸ā§āĻĒāϟ āĻœā§‡āĻ­āĻŋāĻāĻŽ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āĻ•āĻŽā§āĻĒā§āϝāĻžāĻ•ā§āϟ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻšā§‡āĻĄāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ ā§Ŧā§Ē-āĻŦāĻŋāϟ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡, āĻšā§‡āĻĄāĻžāϰ⧇āϰ āφāĻ•āĻžāϰ ⧝ā§Ŧ āĻĨ⧇āϕ⧇ ā§Ŧā§Ē āĻŦāĻŋāĻŸā§‡ āĻ•āĻŽāĻŋāϝāĻŧ⧇ āφāύāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻŽā§‡āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āĻŽāĻžāϝāĻŧ āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻžāϰ āĻĒā§āϰāϏ⧇āϏāϰ āĻ•ā§āϝāĻžāĻļ⧇ āĻĒ⧌āρāĻ›āĻžāύ⧋āϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤ SPECjbb2015 āĻŦ⧇āĻžā§āϚāĻŽāĻžāĻ°ā§āϕ⧇, āĻŽā§‡āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ ⧍⧍%, āϏāĻŋāĻĒāĻŋāχāω āϞ⧋āĻĄ ā§Ž% āĻāĻŦāĻ‚ āĻ—āĻžāĻ°ā§āĻŦ⧇āϜ āĻ•āĻžāϞ⧇āĻ•āĻļāύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž ā§§ā§Ģ% āĻ•āĻŽā§‡āϛ⧇āĨ¤ JSON āĻĒāĻžāĻ°ā§āϏāĻžāϰ⧇āϰ āĻŸā§‡āĻ¸ā§āϟ āϰāĻžāύ āϟāĻžāχāĻŽ ā§§ā§Ļ% āĻ•āĻŽā§‡āϛ⧇āĨ¤
  • TLS 1.3 āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύāϟāĻŋ javax.net API-āϤ⧇ āĻšāĻžāχāĻŦā§āϰāĻŋāĻĄ āϕ⧀ āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ¸ā§āĻ•āĻŋāĻŽāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰ⧇, āϝ⧇āϗ⧁āϞāĻŋ āϕ⧋āϝāĻŧāĻžāĻ¨ā§āϟāĻžāĻŽ-āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ ML-KEM (CRYSTALS-Kyber) āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽāϕ⧇ āĻ•ā§āϞāĻžāϏāĻŋāĻ•ā§āϝāĻžāϞ ECDHE āĻāϞāĻŋāĻĒāϟāĻŋāĻ• āĻ•āĻžāĻ°ā§āĻ­ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇: X25519MLKEM768 (X25519 āĻ•āĻžāĻ°ā§āĻ­ āϏāĻš ECDHE + ML-KEM-768), SecP256r1MLKEM76 (secp256r1 āĻ•āĻžāĻ°ā§āĻ­ āϏāĻš ECDHE + ML-KEM-768), āĻāĻŦāĻ‚ SecP384r1MLKEM1024 (secp384r1 āĻ•āĻžāĻ°ā§āĻ­ āϏāĻš ECDHE + ML-KEM-1024)āĨ¤SSL āĻāχ āĻ¸ā§āĻ•āĻŋāĻŽāϗ⧁āϞ⧋ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇ āϕ⧋āύ⧋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āύāĻžāĨ¤
  • āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āĻŽāύāĻŋāϟāϰāĻŋāĻ‚, āĻĒā§āϰ⧋āĻĢāĻžāχāϞāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻĄāĻžāϝāĻŧāĻžāĻ—āύāĻ¸ā§āϟāĻŋāĻ•āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻāĻ•āϟāĻŋ āϟ⧁āϞ, āĻœā§‡āĻĄāĻŋāϕ⧇ āĻĢā§āϞāĻžāχāϟ āϰ⧇āĻ•āĻ°ā§āĻĄāĻžāϰ (āĻœā§‡āĻāĻĢāφāϰ), āĻāĻ–āύ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻĄāĻžāϝāĻŧāĻžāĻ—āύāĻ¸ā§āϟāĻŋāĻ• āϤāĻĨā§āϝ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ-āϞāĻžāχāύ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ, āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻŽāĻžāύ āĻāĻŦāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻ¸ā§āϝāĻžāύāĻŋāϟāĻžāχāϜ āĻ•āϰāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ āĻāχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϟāĻŋ āĻĒā§āϰ⧋āĻĢāĻžāχāϞ āĻ•āϰāĻž āĻĒā§āϰāϏ⧇āϏ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•ā§ƒāϤ āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ āĻĄā§‡āϟāĻž, āϝ⧇āĻŽāύ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĒāĻžāĻ āĻžāύ⧋ āĻ…āĻĨāϰāĻžāχāĻœā§‡āĻļāύ āĻŸā§‹āϕ⧇āύ āĻāĻŦāĻ‚ āĻāĻĒāĻŋāφāχ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āϕ⧀-āĻāϰ āĻĢāĻžāρāϏ āĻšāĻ“āϝāĻŧāĻž āĻĒā§āϰāϤāĻŋāϰ⧋āϧ āĻ•āϰ⧇āĨ¤
  • āĻ…āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧀āϝāĻŧ āĻĄā§‡āϟāĻž āϧāĻžāϰāĻŖāĻ•āĻžāϰ⧀ āĻāĻŦāĻ‚ JVM-āĻ āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāĻŋāϤ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ Lazy Constants API-āĻāϰ āϤ⧃āϤ⧀āϝāĻŧ āĻĒā§āϰāĻŋāĻ­āĻŋāωāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ "final" āϕ⧀āĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāϝ⧁āĻ•ā§āϤ āĻĢāĻŋāĻ˛ā§āĻĄāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝ⧋āĻœā§āϝ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻ…āύ⧁āϰ⧂āĻĒ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ āĻāχ āϧāϰāύ⧇āϰ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϗ⧁āϞāĻŋāϤ⧇ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ "final"-āĻāϰ āĻĨ⧇āϕ⧇ āĻ­āĻŋāĻ¨ā§āύ, āύāϤ⧁āύ API āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ āĻ­ā§āϝāĻžāϞ⧁ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞāĻŋāϰ āχāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύāϕ⧇ āφāϞāĻžāĻĻāĻž āĻ•āϰ⧇, āĻāĻ•āϟāĻŋ āĻ­ā§āϝāĻžāϞ⧁ āϝ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āĻŦāĻžāϰāχ āχāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇, āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϚāĻžāϞ⧁āϰ āϏāĻŽāϝāĻŧ āĻ•āĻŽāĻžāϝāĻŧ, āĻāĻŦāĻ‚ āĻ•āύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϟ-āĻĢā§‹āĻ˛ā§āĻĄāĻŋāĻ‚ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ, āϝāĻž āφāϗ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ JDK-āĻāϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āϕ⧋āĻĄā§‡ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϤ, āϤāĻž āĻāĻ–āύ āχāωāϜāĻžāϰ āϕ⧋āĻĄā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧāĨ¤ class Application { // āĻĒā§‚āĻ°ā§āĻŦ⧇: // static final UserService USERS = new UserService(); // āĻāĻ–āύ: static final StableValue āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ = StableValue.of(); public static UserService users() { return USERS.orElseSet(UserService::new); } }
  • āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŽā§āϝāĻžāϚāĻŋāĻ‚ āχāĻžā§āϜāĻŋāύāϟāĻŋ āϏāĻŦ āϧāϰāύ⧇āϰ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇, instanceof āĻ…āĻĒāĻžāϰ⧇āϟāϰ⧇ āĻāĻŦāĻ‚ switch āĻŦā§āϞāϕ⧇ āĻĒā§āϰāĻŋāĻŽāĻŋāϟāĻŋāĻ­ āϟāĻžāχāĻĒ (int, byte, char, āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āύāύ-āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻŦ⧇āϏ āϟāĻžāχāĻĒ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻžāϰ āĻĒāĻžā§āϚāĻŽ āĻ–āϏāĻĄāĻŧāĻž āϚāĻžāϞ⧁ āĻ•āϰ⧇āϛ⧇āĨ¤ switch (x.getStatus()) { case 0 -> "okay"; case 1 -> "warning"; case 2 -> "error"; case int i -> "unknown status: " + i; } if (i instanceof byte b) { â€Ļ b â€Ļ }
  • āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāĻ°ā§āĻĄ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ āĻāĻĒāĻŋāφāχ-āĻāϰ āϏāĻĒā§āϤāĻŽ āĻ–āϏāĻĄāĻŧāĻžāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĨā§āϰ⧇āĻĄā§‡ āϚāϞāĻŽāĻžāύ āĻāĻ•āĻžāϧāĻŋāĻ• āϟāĻžāĻ¸ā§āĻ•āϕ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āχāωāύāĻŋāϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧇ āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĨā§āϰ⧇āĻĄā§‡āĻĄ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϤ⧈āϰāĻŋāϕ⧇ āϏāĻšāϜ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤
  • āϭ⧇āĻ•ā§āϟāϰ āĻāĻĒāĻŋāφāχ-āĻāϰ āĻĻā§āĻŦāĻžāĻĻāĻļ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāχ āĻāĻĒāĻŋāφāχāϟāĻŋ x86_64 āĻāĻŦāĻ‚ AArch64 āĻĒā§āϰāϏ⧇āϏāϰ⧇āϰ āϭ⧇āĻ•ā§āϟāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϭ⧇āĻ•ā§āϟāϰ āĻ—āĻŖāύāĻžāϰ āϜāĻ¨ā§āϝ āĻĢāĻžāĻ‚āĻļāύ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāĻ•āĻžāϧāĻŋāĻ• āĻŽāĻžāύ⧇āϰ āωāĻĒāϰ āϝ⧁āĻ—āĻĒā§Ž āĻ…āĻĒāĻžāϰ⧇āĻļāύ (SIMD) āĻ•āϰāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧāĨ¤ āĻšāϟāĻ¸ā§āĻĒāϟ āĻœā§‡āφāχāϟāĻŋ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ⧇āϰ āĻ¸ā§āϕ⧇āϞāĻžāϰ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āϭ⧇āĻ•ā§āϟāϰāĻžāχāĻœā§‡āĻļāύ⧇āϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, āĻāχ āύāϤ⧁āύ āĻāĻĒāĻŋāφāχāϟāĻŋ āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āϭ⧇āĻ•ā§āϟāϰāĻžāχāĻœā§‡āĻļāύ⧇āϰ āωāĻĒāϰ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāϪ⧇āϰ āϏ⧁āϝ⧋āĻ— āĻĻ⧇āϝāĻŧāĨ¤
  • PEM (Pivacy-Enhanced Mail) āĻĢāϰāĻŽā§āϝāĻžāϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āϕ⧀, āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻŦāĻžāϤāĻŋāϞāĻ•āϰāĻŖ āϤāĻžāϞāĻŋāĻ•āĻž āϧāĻžāϰāĻŖāĻ•āĻžāϰ⧀ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāύāϕ⧋āĻĄ āĻ“ āĻĄāĻŋāϕ⧋āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ API-āĻāϰ āϤ⧃āϤ⧀āϝāĻŧ āĻ–āϏāĻĄāĻŧāĻžāϟāĻŋ āĻāĻ–āύ āωāĻĒāϞāĻŦā§āϧāĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āφāĻŽāϰāĻž āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϝāĻžāϞ āχāωāϜāĻžāϰ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ JavaFX 27 āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡āϰ āĻāĻ•āϟāĻŋ āφāĻĒāĻĄā§‡āϟ āĻĒā§āϰāĻ•āĻžāĻļ⧇āϰ āĻ˜ā§‹āώāĻŖāĻž āĻ•āϰāϤ⧇ āĻĒ⧇āϰ⧇ āφāύāĻ¨ā§āĻĻāĻŋāϤāĨ¤ āφāĻ—āĻžāĻŽā§€ āĻ•āϝāĻŧ⧇āĻ• āϘāĻŖā§āϟāĻžāϰ āĻŽāĻ§ā§āϝ⧇āχ GraalVM 27 āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻžāϞ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύāĻ“ āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ āĻšāĻŦ⧇ āĻŦāϞ⧇ āφāĻļāĻž āĻ•āϰāĻž āĻšāĻšā§āϛ⧇, āϝāĻž āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ (Node.js), āĻĒāĻžāχāĻĨāύ, āϰ⧁āĻŦāĻŋ, āφāϰ, āϝ⧇āϕ⧋āύ⧋ JVM āĻ˛ā§āϝāĻžāĻ™ā§āϗ⧁āϝāĻŧ⧇āϜ (āϜāĻžāĻ­āĻž, āĻ¸ā§āĻ•āĻžāϞāĻž, āĻ•ā§āϞ⧋āϜāĻžāϰ, āϕ⧋āϟāϞāĻŋāύ) āĻāĻŦāĻ‚ āϝ⧇āϏāĻŦ āĻ˛ā§āϝāĻžāĻ™ā§āϗ⧁āϝāĻŧ⧇āĻœā§‡āϰ āϜāĻ¨ā§āϝ LLVM āĻŦāĻŋāϟāϕ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžāϝāĻŧ (āϏāĻŋ, āϏāĻŋ++, āϰāĻžāĻ¸ā§āϟ) āϏ⧇āϏāĻŦ āĻ˛ā§āϝāĻžāĻ™ā§āϗ⧁āϝāĻŧ⧇āĻœā§‡ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϚāĻžāϞāĻžāϤ⧇ āϏāĻšāĻžāϝāĻŧāϤāĻž āĻ•āϰ⧇āĨ¤

āωāĻ¤ā§āϏ: opennet.ru

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster