рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдирдВрддрд░, рдУрд░реЕрдХрд▓рдиреЗ Java SE 19 (Java Platform, Standard Edition 19) рдЬрд╛рд░реА рдХреЗрд▓реЗ, рдЬреЗ OpenJDK рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЪрд╛ рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдореНрд╣рдгреВрди рд╡рд╛рдкрд░ рдХрд░рддреЗ. рдХрд╛рд╣реА рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реНрдпрд╛рдЪрд╛ рдЕрдкрд╡рд╛рдж рд╡рдЧрд│рддрд╛, Java SE 19 Java рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреНрдпрд╛ рдорд╛рдЧреАрд▓ рд░рд┐рд▓реАрдЭрд╕рд╣ рдмреЕрдХрд╡рд░реНрдб рд╕реБрд╕рдВрдЧрддрддрд╛ рд░рд╛рдЦрддреЗ - рдмрд╣реБрддреЗрдХ рдкреВрд░реНрд╡реА рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ Java рдкреНрд░рдХрд▓реНрдк рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдЕрдВрддрд░реНрдЧрдд рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдмрджрд▓рд╛рдВрд╢рд┐рд╡рд╛рдп рдХрд╛рд░реНрдп рдХрд░рддреАрд▓. Linux (x19_86, AArch64), Windows (x64_86) рдЖрдгрд┐ macOS (x64_86, AArch64) рд╕рд╛рдареА Java SE 64 (JDK, JRE рдЖрдгрд┐ Server JRE) рдЪреНрдпрд╛ рддрдпрд╛рд░-рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА-рдЗрдВрд╕реНрдЯреЙрд▓ рдмрд┐рд▓реНрдб рддрдпрд╛рд░ рдЖрд╣реЗрдд. OpenJDK рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реЗ, Java 19 рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА GPLv2 рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рдкреВрд░реНрдгрдкрдгреЗ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдЖрд╣реЗ, GNU ClassPath рдЕрдкрд╡рд╛рдж рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрддреНрдкрд╛рджрдирд╛рдВрд╕рд╣ рдбрд╛рдпрдиреЕрдорд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд.

Java SE 19 рдЪреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд░реНрдерди рдкреНрд░рдХрд╛рд╢рди рдореНрд╣рдгреВрди рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдкреБрдвреАрд▓ рдкреНрд░рдХрд╛рд╢рди рд╣реЛрдИрдкрд░реНрдпрдВрдд рдЕрджреНрдпрддрдиреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рд╕реБрд░реВ рд░рд╛рд╣реАрд▓. рд▓рд╛рдБрдЧ рдЯрд░реНрдо рд╕рдкреЛрд░реНрдЯ (LTS) рд╢рд╛рдЦрд╛ Java SE 17 рдЕрд╕рд╛рд╡реА, рдЬреА 2029 рдкрд░реНрдпрдВрдд рдЕрдкрдбреЗрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдд рд░рд╛рд╣реАрд▓. рдЖрдореНтАНрд╣реА рддреБрдореНтАНрд╣рд╛рд▓рд╛ рд╕реНтАНрдорд░рдг рдХрд░реВрди рджреЗрддреЛ рдХреА Java 10 рдЪреНтАНрдпрд╛ рд░рд┐рд▓реАрдЭрдкрд╛рд╕реВрди рд╕реБрд░реВрд╡рд╛рдд рдХрд░реВрди, рдкреНрд░реЙрдЬреЗрдХреНрдЯ рдирд╡реАрди рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрдХрдбреЗ рд╡рд│рд▓рд╛, рдирд╡реАрди рд░рд┐рд▓реАрдЭ рддрдпрд╛рд░ рд╣реЛрдгреНтАНрдпрд╛рд╕рд╛рдареА рдПрдХ рд▓рд╣рд╛рди рдЪрдХреНрд░ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ. рдирд╡реАрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрддрд╛ рдПрдХрд╛ рд╕рддрдд рдЕрджреНрдпрдпрд╛рд╡рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦреЗрдд рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рддрдпрд╛рд░ рдмрджрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд рдЖрдгрд┐ рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдирд╛ рд╕реНрдерд┐рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджрд░ рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрдиреА рд╢рд╛рдЦрд╛ рд╢рд╛рдЦрд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.

Java 19 рдордзреАрд▓ рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ:

  • рд░реЗрдХреЙрд░реНрдб рдирдореБрдиреНрдпрд╛рдВрд╕рд╛рдареА рдкреНрд░рд╛рдердорд┐рдХ рд╕рдорд░реНрдерди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬрд╛рд╡рд╛ 16 рдордзреНрдпреЗ рд╕рд╛рджрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЕрдЯрд░реНрди рдореЕрдЪрд┐рдВрдЧ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реВрди рд░реЗрдХреЙрд░реНрдб рдХреНрд▓рд╛рд╕рдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рдВрдЪреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрдирд╛рдВрд╕рд╣. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде: рд░реЗрдХреЙрд░реНрдб рдкреЙрдЗрдВрдЯ(int x, int y) {} void printSum(Object o) { if (o instance of Point(int x, int y)) { System.out.println(x+y); } }
  • Linux рдмрд┐рд▓реНрдбреНрд╕ RISC-V рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рдкреБрд░рд╡рддрд╛рдд.
  • FFM (рдлреЙрд░реЗрди рдлрдВрдХреНрд╢рди рдЖрдгрд┐ рдореЗрдорд░реА) API рд╕рд╛рдареА рдкреНрд░рд╛рдердорд┐рдХ рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдмрд╛рд╣реНрдп рд▓рд╛рдпрдмреНрд░рд░реАрдВрдордзреВрди рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░реВрди рдЖрдгрд┐ JVM рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдореЗрдорд░реА рдНрдХреНрд╕реЗрд╕ рдХрд░реВрди рдмрд╛рд╣реНрдп рдХреЛрдб рдЖрдгрд┐ рдбреЗрдЯрд╛рд╕рд╣ Java рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдЪрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
  • рд╡рд░реНрдЪреНрдпреБрдЕрд▓ рдереНрд░реЗрдбреНрд╕рд╕рд╛рдареА рдЬреЛрдбрд▓реЗрд▓реЗ рд╕рдорд░реНрдерди, рдЬреЗ рд╣рд▓рдХреЗ рдереНрд░реЗрдбреНрд╕ рдЖрд╣реЗрдд рдЬреЗ рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рд▓реЗрдЦрди рдЖрдгрд┐ рджреЗрдЦрднрд╛рд▓ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрд▓рдн рдХрд░рддрд╛рдд.
  • рд╡реНрд╣реЗрдХреНрдЯрд░ API рдЪреЗ рдЪреМрдереЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ x86_64 рдЖрдгрд┐ AArch64 рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░ рд╡реЗрдХреНрдЯрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реНрд╣реЗрдХреНрдЯрд░ рдЧрдгрдиреЗрд╕рд╛рдареА рдХрд╛рд░реНрдпреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЖрдгрд┐ рдПрдХрд╛рдзрд┐рдХ рдореВрд▓реНрдпрд╛рдВрд╡рд░ (SIMD) рдСрдкрд░реЗрд╢рдиреНрд╕ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. HotSpot JIT рдХрдВрдкрд╛рдпрд▓рд░рдордзреНрдпреЗ рд╕реНрдХреЗрд▓рд░ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдСрдЯреЛ-рд╡реНрд╣реЗрдХреНрдЯрд░рд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдирд╡реАрди API рд╕рдорд╛рдВрддрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА рд╡реЗрдХреНрдЯрд░рд╛рдпрдЭреЗрд╢рди рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдХрд░рддреЗ.
  • "рд╕реНрд╡рд┐рдЪ" рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрдордзреНрдпреЗ рдкреЕрдЯрд░реНрди рдореЕрдЪрд┐рдВрдЧрдЪреА рддрд┐рд╕рд░реА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рдиреЗ "рдХреЗрд╕" рд▓реЗрдмрд▓реНрд╕рдордзреНрдпреЗ рдЕрдЪреВрдХ рдореВрд▓реНрдпреЗ рдирд╕реВрди рдПрдХрд╛рдЪ рд╡реЗрд│реА рдореВрд▓реНрдпрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛ рдХрд╡реНрд╣рд░ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд▓рд╡рдЪрд┐рдХ рдирдореБрдиреНрдпрд╛рдВрдЪреА рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рд╕рд╛рдареА рдкреВрд░реНрд╡реА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ тАЬif...elseтАЭ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрдЪреНрдпрд╛ рдЕрд╡рдЬрдб рд╕рд╛рдЦрд│реНрдпрд╛ рд╡рд╛рдкрд░рд╛. рдСрдмреНрдЬреЗрдХреНрдЯ o = 123L; рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрд╡рд░реВрдкрд┐рдд = рд╕реНрд╡рд┐рдЪ (рдУ) { рдХреЗрд╕ рдкреВрд░реНрдгрд╛рдВрдХ i -> String.format("int %d", i); рдХреЗрд╕ рд▓рд╛рдВрдм l -> String.format("long %d", l); рдХреЗрд╕ Double d -> String.format("рдбрдмрд▓ %f", d); рдХреЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ s -> String.format("рд╕реНрдЯреНрд░рд┐рдВрдЧ %s", s); рдбреАрдлреЙрд▓реНрдЯ -> o.toString(); };
  • рд╕рдВрд░рдЪрд┐рдд рд╕рдорд╛рдВрддрд░рддреЗрд╕рд╛рдареА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ API рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рд╡рд┐рд╡рд┐рдз рдереНрд░реЗрдбреНрд╕рдордзреНрдпреЗ рдЪрд╛рд▓рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдПрдХрд╛рдзрд┐рдХ рдХрд╛рд░реНрдпрд╛рдВрдирд╛ рдПрдХрд╛рдЪ рдмреНрд▓реЙрдХрдЪреНрдпрд╛ рд░реВрдкрд╛рдд рд╣рд╛рддрд╛рд│реВрди рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪрд╛ рд╡рд┐рдХрд╛рд╕ рд╕реБрд▓рдн рдХрд░рддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛