Java SE 22 рдкреНрд▓реЗрдЯрдлрд░реНрдо рд░ OpenJDK 22 рдЦреБрд▓рд╛ рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд░рд┐рд▓реАрдЬ

рд╡рд┐рдХрд╛рд╕рдХреЛ рдЫ рдорд╣рд┐рдирд╛ рдкрдЫрд┐, рдУрд░реЗрдХрд▓рд▓реЗ Java SE 22 (рдЬрд╛рднрд╛ рдкреНрд▓реЗрдЯрдлрд░реНрдо, рдорд╛рдирдХ рд╕рдВрд╕реНрдХрд░рдг 22) рдЬрд╛рд░реА рдЧрд░реНтАНрдпреЛ, рдЬрд╕рд▓реЗ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд OpenJDK рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдХреЗрд╣реА рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╣рдЯрд╛рдЙрдиреЗ рдЕрдкрд╡рд╛рджрдХреЛ рд╕рд╛рде, Java SE 22 рд▓реЗ рдЬрд╛рднрд╛ рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рд░рд┐рд▓реАрдЬрд╣рд░реВрд╕рдБрдЧ рдкрдЫрд╛рдбрд┐ рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрдЫ - рдзреЗрд░реИ рдкрд╣рд┐рд▓реЗ рд▓реЗрдЦрд┐рдПрдХрд╛ рдЬрд╛рднрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреНрддрд░реНрдЧрдд рдЪрд▓реНрджрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдмрд┐рдирд╛ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫрдиреНред Java SE 22 (JDK, JRE рд░ Server JRE) рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рддрдпрд╛рд░ рд╣реБрди рд▓рд┐рдирдХреНрд╕ (x86_64, AArch64), Windows (x86_64) рд░ macOS (x86_64, AArch64) рдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рдЫрдиреНред OpenJDK рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд, Java 22 рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди GPLv2 рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдЕрдиреНрддрд░реНрдЧрдд рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реЛ, GNU ClassPath рдЕрдкрд╡рд╛рджрд╣рд░реВрд▓реЗ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрд╕рдБрдЧ рдЧрддрд┐рд╢реАрд▓ рд▓рд┐рдЩреНрдХ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

Java SE 22 рд▓рд╛рдИ рдирд┐рдпрдорд┐рдд рд╕рдорд░реНрдерди рд░рд┐рд▓реАрдЬрдХреЛ рд░реВрдкрдорд╛ рд╡рд░реНрдЧреАрдХреГрдд рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдЕрд░реНрдХреЛ рд░рд┐рд▓реАрдЬ рдирднрдПрд╕рдореНрдо рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╣рдиреЗрдЫред рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕рдорд░реНрдерди (LTS) рд╢рд╛рдЦрд╛ Java SE 21 рд╡рд╛ Java SE 17 рд╣реБрдиреБрдкрд░реНрдЫ, рдЬрд╕рд▓реЗ рдХреНрд░рдорд╢рдГ реирежрейрез рд░ реирежреиреп рд╕рдореНрдо рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫ (рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ реирежреирео рд░ реирежреирем рд╕рдореНрдо рдЙрдкрд▓рдмреНрдз рдЫ)ред Java SE 2031 рдХреЛ LTS рд╢рд╛рдЦрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд░реНрдерди рдЧрдд рд╕реЗрдкреНрдЯреЗрдореНрдмрд░рдорд╛ рд╕рдорд╛рдкреНрдд рднрдпреЛ, рддрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдорд░реНрдерди 2029 рд╕рдореНрдо рдЬрд╛рд░реА рд░рд╣рдиреЗрдЫред Java SE 2028 рдХреЛ LTS рд╢рд╛рдЦрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдорд░реНрдерди 2026 рд╕рдореНрдо рдЬрд╛рд░реА рд░рд╣рдиреЗрдЫред

рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдореНрдЭрдирд╛ рдЧрд░реМрдВ рдХрд┐ Java 10 рдХреЛ рд░рд┐рд▓реАрдЬрдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реНрджреИ, рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдирдпрд╛рдБ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдпреЛ, рдирдпрд╛рдБ рд░рд┐рд▓реАрдЬрд╣рд░реВрдХреЛ рдЧрдардирдХреЛ рд▓рд╛рдЧрд┐ рдЫреЛрдЯреЛ рдЪрдХреНрд░рд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реНрджреИред рдирдпрд╛рдБ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдм рдПрдХ рдирд┐рд░рдиреНрддрд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛рдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рдорд╛ рддрдпрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН рд░ рдЬрд╕рдмрд╛рдЯ рдирдпрд╛рдБ рд╡рд┐рдореЛрдЪрдирд╣рд░реВ рд╕реНрдерд┐рд░ рдЧрд░реНрди рдкреНрд░рддреНрдпреЗрдХ рдЫ рдорд╣рд┐рдирд╛рдорд╛ рд╢рд╛рдЦрд╛рд╣рд░реВ рдЫрдиреНред

Java 22 рдорд╛ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН:

  • G1 рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рдирдХрд░реНрддрд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдкрд┐рдирд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдореЗрдореЛрд░реАрдорд╛ Java рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕реНрдерд╛рди рдЕрд╕реНрдерд╛рдпреА рд░реВрдкрдорд╛ рдареАрдХ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рдирдХрд░реНрддрд╛рджреНрд╡рд╛рд░рд╛ рд╕рд╛рд░реНрдирдмрд╛рдЯ рдЬреЛрдЧрд┐рди рд░ рдпреА рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрд╣рд░реВрд▓рд╛рдИ Java рд░ рдиреЗрдЯрд┐рдн рдХреЛрдб рдмреАрдЪ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ рдкрд╛рд╕ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиред рдкрд┐рдирд┐рдЩрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд┐рд▓рдореНрдмрддрд╛ рдШрдЯрд╛рдЙрди рд░ JNI (рдЬрд╛рднрд╛ рдиреЗрдЯрд┐рдн рдЗрдиреНрдЯрд░рдлреЗрд╕) рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдиреЗрдЯрд┐рдн рдХреЛрдбрдХреЛ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрд╛ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рди рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реНрдирдмрд╛рдЯ рдмрдЪреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рдпреА рдЦрдгреНрдбрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрд╛, JVM рд▓реЗ рджреМрдб рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд╛рд░реНрди рд╣реБрдБрджреИрди)ред рдкрд┐рдирд┐рдЩрд▓реЗ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рдирдХрд░реНрддрд╛рдХреЛ рджреГрд╢реНрдпрдмрд╛рдЯ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд╕реНрддреБрд╣рд░реВ рд╣рдЯрд╛рдЙрдБрдЫ, рдЬрд╕рд▓реЗ рдЕрдирдкрд┐рди рдЧрд░рд┐рдПрдХрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╕рдлрд╛ рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрди рд╕рдХреНрдЫред
  • рд╕реБрдкрд░(...) рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд╣рд░реВрдорд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдирд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рдердкрд┐рдПрдХреЛ рдЫ, рдпрджрд┐ рддреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЙрджрд╛рд╣рд░рдгрд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрджреИрди рднрдиреЗ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдб рдХреНрд▓рд╛рд╕ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рдмрд╛рдЯ рдЕрднрд┐рднрд╛рд╡рдХ рдХреНрд▓рд╛рд╕ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рд╡рд░реНрдЧ рдмрд╛рд╣рд┐рд░реА { рд╢реВрдиреНрдп рд╣реЗрд▓реЛ () { System.out.println("рд╣реЗрд▓реЛ"); } рдХрдХреНрд╖рд╛ рднрд┐рддреНрд░реА { рднрд┐рддреНрд░реА () { рдирдорд╕реНрдХрд╛рд░ (); рд╕реБрдкрд░ (); } } }
  • FFM (Foreign Function & Memory) API рд▓рд╛рдИ JNI (рдЬрд╛рднрд╛ рдиреЗрдЯрд┐рдн рдЗрдиреНрдЯрд░рдлреЗрд╕) рдХреЛ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реАрдХрди, рдмрд╛рд╣реНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реБрдмрд╛рдЯ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд▓ рдЧрд░реЗрд░ рд░ JVM рдмрд╛рд╣рд┐рд░ рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪ рдЧрд░реЗрд░ рдмрд╛рд╣реНрдп рдХреЛрдб рд░ рдбреЗрдЯрд╛рд╕рдБрдЧ рдЬрд╛рднрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдЕрдЬреНрдЮрд╛рдд рдЪрд░ рд░ рдврд╛рдБрдЪрд╛ рдорд┐рд▓реНрджреЛрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫ - рдХрд▓ рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХреЛ рддрд░ рдЖрд╡рд╢реНрдпрдХ рдЪрд░ рд░ рдврд╛рдБрдЪрд╛рд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдЕрдм "_" рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред // рдерд┐рдпреЛ рд╕реНрдЯреНрд░рд┐рдЩ pageName = рд╕реНрд╡рд┐рдЪ (рдкреГрд╖реНрда) { рдХреЗрд╕ GitHubIssuePage(var url, var рд╕рд╛рдордЧреНрд░реА, var рд▓рд┐рдЩреНрдХрд╣рд░реВ, int issueNumber) -> "ISSUE #" + issueNumber; ... }; // рдЕрдм рддрдкрд╛рдЗрдБ String pageName = рд╕реНрд╡рд┐рдЪ (рдкреГрд╖реНрда) { рдХреЗрд╕ GitHubIssuePage(_, _, _, int issueNumber) -> "ISSUE #" + issueNumber; };
  • рдХреНрд▓рд╛рд╕-рдлрд╛рдЗрд▓ рдПрдкреАрдЖрдИрдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рдЬрд╛рднрд╛ рдХреНрд▓рд╛рд╕ рдлрд╛рдЗрд▓рд╣рд░реВ рдкрд╛рд░реНрд╕рд┐рдЩ, рдЬреЗрдиреЗрд░реЗрдЯрд┐рдЩ рд░ рд░реВрдкрд╛рдиреНрддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { (ClassElement ce : classModel) { if (!(ce instance of MethodModel mm && mm.methodName().stringValue() рдХреЛ рд▓рд╛рдЧрд┐ред startsWith("debug"))) { classBuilder.with(ce);
  • рдЬрд╛рднрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рдЬрд╛рднрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдзреЗрд░реИ рдХреЛрдб рдлрд╛рдЗрд▓рд╣рд░реВ рд╡рд╛ рдкреВрд░реНрд╡-рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ рд╡рд░реНрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛, рдпреА рдлрд╛рдЗрд▓рд╣рд░реВрд▓рд╛рдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдореНрдкрд╛рдЗрд▓ рдирдЧрд░реА рд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХрдиреНрдлрд┐рдЧрд░ рдирдЧрд░реАред рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ рдЬрд╕рдорд╛ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧрд╣рд░реВрдХреЛ рдХреЛрдбрд▓рд╛рдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░рд┐рдПрдХреЛ рдЫред Prog.java: рд╡рд░реНрдЧ рдкреНрд░реЛрдЧ { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░ рд╢реВрдиреНрдп рдореБрдЦреНрдп(рд╕реНрдЯреНрд░рд┐рдВрдЧ[] args) { Helper.run(); } } Helper.java: рдХреНрд▓рд╛рд╕ рд╣реЗрд▓реНрдкрд░ { static void run() { System.out.println("рд╣реЗрд▓реЛ!"); } }

    рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "Prog.java" рд░ "Helper.java" рджреБрдИ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рднрдПрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдм "java Prog.java" рдЪрд▓рд╛рдЙрди рдкрд░реНрдпрд╛рдкреНрдд рдЫ, рдЬрд╕рд▓реЗ Prog рд╡рд░реНрдЧ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреЗрдЫ, рдорджреНрджрдд рд╡рд░реНрдЧрдХреЛ рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗрдЫ, рд╣реЗрд▓реНрдкрд░ рдлрд╛рдЗрд▓ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН рд░ рдЬрд╛рднрд╛ рд░ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдХрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

  • рд╕реНрдЯреНрд░рд┐рдЩ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВрдХреЛ рджреЛрд╕реНрд░реЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдердкрд┐рдпреЛ, рд╕реНрдЯреНрд░рд┐рдЩ рд▓рд┐рдЯрд░рд▓ рд░ рдЯреЗрдХреНрд╕реНрдЯ рдмреНрд▓рдХрд╣рд░реВрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛред рд╕реНрдЯреНрд░рд┐рдЩ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВрд▓реЗ + рдЕрдкрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд░ рдЪрд░рд╣рд░реВрд╕рдБрдЧ рдкрд╛рда рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди \{..} рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЧрд░рд┐рдиреНрдЫ, рд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдорд╛рдирд╣рд░реВрдХреЛ рд╢реБрджреНрдзрддрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╡рд┐рд╢реЗрд╖ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, SQL рдЗрдиреНрдЬрд┐рдирд▓реЗ SQL рдХреЛрдбрдорд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░рд┐рдПрдХрд╛ рдорд╛рдирд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрдЫ рд░ рдЖрдЙрдЯрдкреБрдЯрдХреЛ рд░реВрдкрдорд╛ java.sql.Statement рд╡рд╕реНрддреБ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдЫ, рдЬрдмрдХрд┐ JSON рдкреНрд░реЛрд╕реЗрд╕рд░рд▓реЗ JSON рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирд╣рд░реВрдХреЛ рд╢реБрджреНрдзрддрд╛рд▓рд╛рдИ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдЫ рд░ JsonNode рдлрд░реНрдХрд╛рдЙрдБрдЫред рд╕реНрдЯреНрд░рд┐рдЩ рдХреНрд╡реЗрд░реА = "рд╡реНрдпрдХреНрддрд┐ p WHERE p рдмрд╛рдЯ * рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред" + рд╕рдореНрдкрддреНрддрд┐ + " = '" + рдорд╛рди + "'"; // рд╕реНрдЯреЗрдЯрдореЗрдиреНрдЯ рдХреНрд╡реЗрд░реА = SQL рдерд┐рдпреЛред"""" рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН * FROM рд╡реНрдпрдХреНрддрд┐ p WHERE p.\{property} = '\{value}'"""; // рдмрдиреНрдпреЛ
  • рднреЗрдХреНрдЯрд░ рдПрдкреАрдЖрдИрдХреЛ рд╕рд╛рддреМрдВ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдердкрд┐рдПрдХреЛ рдЫ, x86_64 рд░ AArch64 рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдорд╛ рднреЗрдХреНрдЯрд░ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдПрдХрд╛ рднреЗрдХреНрдЯрд░ рдЧрдгрдирд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИ рд░ рдмрд╣реБ тАЛтАЛтАЛтАЛрдорд╛рдирд╣рд░реВ (SIMD) рдорд╛ рдПрдХреИ рд╕рд╛рде рд▓рд╛рдЧреВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред HotSpot JIT рдХрдореНрдкрд╛рдЗрд▓рд░рдорд╛ рд╕реНрдХреЗрд▓рд░ рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдХреЛ рд╕реНрд╡рдд: рднреЗрдХреНрдЯреЛрд░рд╛рдЗрдЬреЗрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВрдХреЛ рд╡рд┐рдкрд░реАрдд, рдирдпрд╛рдБ API рд▓реЗ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐ рднреЗрдХреНрдЯреЛрд░рд╛рдЗрдЬреЗрд╢рдирд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред
  • рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдо рдПрдкреАрдЖрдИрдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдердкрд┐рдПрдХреЛ рдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рдордзреНрдпрд╡рд░реНрддреА рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЬреБрди рдЕрд╡рд╕реНрдерд┐рдд рдмрд┐рд▓реНрдЯ-рдЗрди рдордзреНрдпрд╡рд░реНрддреА рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЗрдЪреНрдЫрд┐рдд рдбрд╛рдЯрд╛ рд░реВрдкрд╛рдиреНрддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдирднрдПрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫред рдиреЗрдЯрд┐рдн рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рдирдпрд╛рдБ рдордзреНрдпрд╡рд░реНрддреА рдЕрдкрд░реЗрд╢рди рд╕реНрдЯреНрд░рд┐рдо::рдЧрджрд░(рдЧрджрд░рд░) рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬреЛрдбрд┐рдПрдХрд╛ рдЫрдиреН, рдЬрд╕рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рд▓рд╛рдЧреВ рдЧрд░реЗрд░ рд╕реНрдЯреНрд░рд┐рдо рддрддреНрд╡рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫред jshell> Stream.of(1,2,3,4,5,6,7,8,9)ред gather(new WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [рек, рел, рем], [рен, рео, реп]]
  • рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдб рдХрдиреНрдХрд░рдиреНрд╕реАрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ API рдХреЛ рджреЛрд╕реНрд░реЛ рд╕рдВрд╕реНрдХрд░рдг рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдПрдХрд▓ рдмреНрд▓рдХрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХрд╛ рдмрд╣реБ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реЗрд░ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрдЫред
  • рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдШреЛрд╖рд┐рдд рд╡рд░реНрдЧрд╣рд░реВ рд░ "рдореБрдЦреНрдп" рд╡рд┐рдзрд┐рдХреЛ рдЕрдЬреНрдЮрд╛рдд рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рджреЛрд╕реНрд░реЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ/рд╕реНрдерд┐рд░ рдШреЛрд╖рдгрд╛рд╣рд░реВ, рддрд░реНрдХрд╣рд░реВрдХреЛ рдПрд░реНрд░реЗ рдкрд╛рд╕ рдЧрд░реНрджреИ, рд░ рд╡рд░реНрдЧ рдШреЛрд╖рдгрд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЕрдиреНрдп рд╕рдВрд╕реНрдерд╛рд╣рд░реВрд▓рд╛рдИ рд╡рд┐рддрд░рдг рдЧрд░реНрди рд╕рдХреНрдЫред // рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░ рд╢реВрдиреНрдп рдореБрдЦреНрдп(рд╕реНрдЯреНрд░рд┐рдВрдЧ[] рдЖрд░реНрдЧреНрд╕) { System.out.println("рд╣реЗрд▓реЛ рд╡рд░реНрд▓реНрдб!"); } } // рдЕрдм рддрдкрд╛рдИрд▓реЗ main() { System.out.println("рд╣реЗрд▓реЛ, рд╡рд░реНрд▓реНрдб!") рд░рджреНрдж рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ; }
  • рд╕реНрдХреЛрдкреЗрдб рдорд╛рдирд╣рд░реВрдХреЛ рджреЛрд╕реНрд░реЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдердкрд┐рдпреЛ, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдбреЗрдЯрд╛рд▓рд╛рдИ рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рд╕рд╛рдЭреЗрджрд╛рд░реА рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ рд░ рдЪрд╛рдЗрд▓реНрдб рдереНрд░реЗрдбрд╣рд░реВ (рдорд╛рдирд╣рд░реВ рдЗрдирд╣реЗрд░рд┐рдЯ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН) рдмреАрдЪ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЖрджрд╛рдирдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдбреЗрдЯрд╛ред рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╕рдВрдпрдиреНрддреНрд░рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕реНрдХреЛрдкреЗрдб рдорд╛рдирд╣рд░реВ рд╡рд┐рдХрд╕рд┐рдд рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреН рд░ рдзреЗрд░реИ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдереНрд░реЗрдбрд╣рд░реВ (рд╣рдЬрд╛рд░реМрдВ рд╡рд╛ рд▓рд╛рдЦреМрдВ рдереНрд░реЗрдбрд╣рд░реВ) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдЕрдЭ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд╣реБрдиреНрдЫрдиреНред рд╕реНрдХреЛрдкреЗрдб рдорд╛рдирд╣рд░реВ рд░ рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рдЪрд░рд╣рд░реВ рдмреАрдЪрдХреЛ рдореБрдЦреНрдп рднрд┐рдиреНрдирддрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдкрд╣рд┐рд▓реЗ рдПрдХ рдкрдЯрдХ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ, рднрд╡рд┐рд╖реНрдпрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди, рд░ рдереНрд░реЗрдбрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдЕрд╡рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рд░рд╣рдиреНрдЫред
  • рд╕рдорд╛рдирд╛рдиреНрддрд░ рдлреЛрд╣реЛрд░ рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛рд▓реЗ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдареВрд▓реЛ рдПрд░реЗрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдЧрд░реЗрдХреЛ рдЫред рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд▓реЗ 20% рд▓реЗ рд╡рд╕реНрддреБ рдЦреЛрдЬреНрди рд╕реБрд░реБ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдврд┐рд▓рд╛рдЗ рдХрдо рдЧрд░реНрди рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдареВрд▓реЛ рдПрд░реЗрд╣рд░реВрд╕рдБрдЧ рдХреЗрд╣реА рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛ рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛред

рдердк рд░реВрдкрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдиреНрдЯрд░рдлреЗрд╕ JavaFX 22 рд╕рдБрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрдХреЛ рдкреНрд░рдХрд╛рд╢рдирд▓рд╛рдИ рдиреЛрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди