рдЫ рдорд╣рд┐рдирд╛рдХреЛ рд╡рд┐рдХрд╛рд╕ рдкрдЫрд┐, рдУрд░реЗрдХрд▓рд▓реЗ рдЬрд╛рднрд╛ рдПрд╕рдИ реирей (рдЬрд╛рднрд╛ рдкреНрд▓реЗрдЯрдлрд░реНрдо, рдорд╛рдирдХ рд╕рдВрд╕реНрдХрд░рдг реирей) рдЬрд╛рд░реА рдЧрд░реЗрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдУрдкрдирдЬреЗрдбреАрдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓рд╛рдИ рдпрд╕рдХреЛ рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдХреЗрд╣реА рд╣рдЯрд╛рдЗрдПрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╣рдЯрд╛рдЙрдиреЗ рдЕрдкрд╡рд╛рдж рдмрд╛рд╣реЗрдХ, рдЬрд╛рднрд╛ рдПрд╕рдИ реирей рд▓реЗ рдЬрд╛рднрд╛ рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рд░рд┐рд▓реАрдЬрд╣рд░реВрд╕рдБрдЧ рдкрдЫрд╛рдбрд┐ рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрдЫ - рдзреЗрд░реИрдЬрд╕реЛ рдкрд╣рд┐рд▓реЗ рд▓реЗрдЦрд┐рдПрдХрд╛ рдЬрд╛рднрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреНрддрд░реНрдЧрдд рдЪрд▓рд╛рдЙрдБрджрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░реВрдкрдорд╛ рдЪрд▓реНрдиреЗрдЫрдиреНред рдЬрд╛рднрд╛ рдПрд╕рдИ реиреи (рдЬреЗрдбреАрдХреЗ, рдЬреЗрдЖрд░рдИ, рд░ рд╕рд░реНрднрд░ рдЬреЗрдЖрд░рдИ) рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рддрдпрд╛рд░ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рддрдпрд╛рд░ рдЫрдиреНред Linux (x86_64, AArch64), Windows (x86_64) рд░ macOS (x86_64, AArch64)ред OpenJDK рдкрд░рд┐рдпреЛрдЬрдирд╛рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд, рдЬрд╛рднрд╛ резрен рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди GNU ClassPath рдЕрдкрд╡рд╛рджрдХреЛ рд╕рд╛рде GPLv2 рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдЕрдиреНрддрд░реНрдЧрдд рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реЛ, рдЬрд╕рд▓реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрд╕рдБрдЧ рдЧрддрд┐рд╢реАрд▓ рд▓рд┐рдЩреНрдХрд┐рдЩрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
Java SE 23 рд▓рд╛рдИ рдирд┐рдпрдорд┐рдд рд╕рдорд░реНрдерди рд░рд┐рд▓реАрдЬрдХреЛ рд░реВрдкрдорд╛ рд╡рд░реНрдЧреАрдХреГрдд рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдЕрд░реНрдХреЛ рд░рд┐рд▓реАрдЬ рдирднрдПрд╕рдореНрдо рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╣рдиреЗрдЫред рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕рдорд░реНрдерди (LTS) рд╢рд╛рдЦрд╛ Java SE 21 рд╡рд╛ Java SE 17 рд╣реБрдиреБрдкрд░реНрдЫ, рдЬрд╕рд▓реЗ рдХреНрд░рдорд╢рдГ реирежрейрез рд░ реирежреиреп рд╕рдореНрдо рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫ (рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ реирежреирео рд░ реирежреирем рд╕рдореНрдо рдЙрдкрд▓рдмреНрдз рдЫ)ред Java SE 2031 рдХреЛ LTS рд╢рд╛рдЦрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдорд░реНрдерди 2029 рд╕рдореНрдо рд░ Java SE 2028 рдХреЛ 2026 рд╕рдореНрдо рд░рд╣рдиреЗрдЫред
Java SE рдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд 23 рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ рдордзреНрдпреЗ:
- ZGC (рдЬреЗрдиреЗрд░реЗрд╕рди Z рдЧрд╛рд░реНрдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░) рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рдХрдХреЛ рдЕрдкрд░реЗрд╢рдирдХреЛ рдЙрддреНрдкрд╛рджрди рдореЛрдб рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫ, "рдкреБрд░рд╛рдиреЛ" рд░ "рдпреБрд╡рд╛" рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╢реЛрдзрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рдЬрд╕рд▓реЗ рдЫреЛрдЯреЛ рдЬреАрд╡рдирдХрд╛рд▓рдорд╛ рд╣рд╛рд▓рд╕рд╛рд▓реИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд╕рдлрд╛ рдЧрд░реНрдиреЗ рджрдХреНрд╖рддрд╛ рдмрдврд╛рдЙрдБрдЫред рдЬреЗрдиреЗрд░реЗрд╕рдирд▓ ZGC рдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рд╕реНрд░реЛрдд рд╡рд┐рдирд┐рдпреЛрдЬрдирдХреЛ рдХреНрд░рдордорд╛ рд╕реНрдЯрд▓рд╣рд░реВрдХреЛ рдЬреЛрдЦрд┐рдо рдХрдо рдЧрд░реНрдЫ, рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджрд╛ CPU рд▓реЛрдб рд░ рдореЗрдореЛрд░реА рдЦрдкрдд рдХрдо рдЧрд░реНрдЫред Apache Cassandra 4 рдХреЛ рд╕рд╛рде рдЬреЗрдиреЗрд░реЗрд╕рдирд▓ ZGC рдХреЛ рдкрд░реАрдХреНрд╖рдгрд▓реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╣рд┐рдк рд╕рд╛рдЗрдЬрдХреЛ рд╕рд╛рде рдереНрд░реБрдкреБрдЯрдорд╛ 4x рд╡реГрджреНрдзрд┐ рд░ рд╕реНрдерд┐рд░ рдереНрд░реБрдкреБрдЯрдХреЛ рд╕рд╛рде рд╣рд┐рдк рд╕рд╛рдЗрдЬрдорд╛ рдПрдХ рдЪреМрдерд╛рдИ рдХрдореА рджреЗрдЦрд╛рдпреЛред
- JavaDoc рд▓реЗ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рдХрд╛рдЧрдЬрд╛рдд рдХреЛрдбрдорд╛ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдорд░реНрдерди рдердкреЗрдХреЛ рдЫ, рдЬреБрди HTML рд░ JavaDoc @ рдЯреНрдпрд╛рдЧрд╣рд░реВрдХреЛ рдорд┐рд╢реНрд░рдгрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

- рд╕рдмреИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВрдорд╛, "instanceof" рдХрдердирдорд╛, рд░ "switch" рдмреНрд▓рдХрд╣рд░реВрдорд╛ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░рд╣рд░реВ (int, byte, char, рд░ рдЕрдиреНрдп рдЧреИрд░-рд╡рд╕реНрддреБ рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рдХрд╛рд░рд╣рд░реВ) рдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рдврд╛рдБрдЪрд╛ рдорд┐рд▓рд╛рдЙрдиреЗ рд╕рдВрдпрдиреНрддреНрд░рд╣рд░реВ рдмрдврд╛рдЗрдПрдХреЛ рдЫред рд╕реНрд╡рд┐рдЪ (x.getStatus()) { рдХреЗрд╕ 0 -> "рдареАрдХ рдЫ"; рдорд╛рдорд▓рд╛ 1 -> "рдЪреЗрддрд╛рд╡рдиреА"; рдХреЗрд╕ 2 -> "рддреНрд░реБрдЯрд┐"; рдХреЗрд╕ int i -> "рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд┐рддрд┐: " + i; } рдпрджрд┐ (рдмрд╛рдЗрдЯ b рдХреЛ рдЙрджрд╛рд╣рд░рдг) { тАж b тАж }
- рдПрдХрд▓ "рдЖрдпрд╛рдд рдореЛрдбреНрдпреБрд▓ M" рдХрдерди рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЛрдбреНрдпреБрд▓рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдпрд╛рдд рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдПрдХреИрдЪреЛрдЯрд┐ рдЖрдпрд╛рдд рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред рдкрд░рд┐рд╡рд░реНрддрдирд▓реЗ рдореЛрдбреНрдпреБрд▓рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдкреБрди: рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрдЫ, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд░ рдХрдХреНрд╖рд╛рд╣рд░реВ рдкреНрдпрд╛рдХреЗрдЬ рдкрджрд╛рдиреБрдХреНрд░рдордорд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реНрдерд╛рди рдирд┐рд░реНрдзрд╛рд░рдг рдирдЧрд░реА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "рдЗрдореНрдкреЛрд░реНрдЯ рдореЛрдбреНрдпреБрд▓ java.base" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдирд╛рд▓реЗ java.base рдореЛрдбреНрдпреБрд▓рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ 54 рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЖрдпрд╛рдд рд╣реБрдиреЗрдЫ, рдЬреБрди рдкрд╣рд┐рд▓реЗ рдЫреБрдЯреНрдЯреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрдиреБ рдкрд░реНрдиреЗ рдерд┐рдпреЛ ("import java.io.*", "import java.util.* " рдЖрджрд┐)ред
рдХреНрд▓рд╛рд╕-рдлрд╛рдЗрд▓ рдПрдкреАрдЖрдИрдХреЛ рджреЛрд╕реНрд░реЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд╛рднрд╛ рдХреНрд▓рд╛рд╕ рдлрд╛рдЗрд▓рд╣рд░реВ рдкрд╛рд░реНрд╕рд┐рдЩ, рдЬреЗрдиреЗрд░реЗрдЯрд┐рдЩ рд░ рд░реВрдкрд╛рдиреНрддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред 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);
- Vector API рдХреЛ рдЖрдареМрдВ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрдирд▓реЗ x86_64 рд░ AArch64 рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдорд╛ рднреЗрдХреНрдЯрд░ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХрд╛ рднреЗрдХреНрдЯрд░ рдЧрдгрдирд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рд░ рдХрд╛рд░реНрдпрд╣рд░реВрд▓рд╛рдИ рдПрдХреИ рд╕рд╛рде рдмрд╣реБ рдорд╛рдирд╣рд░реВ (SIMD) рдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред HotSpot JIT рдХрдореНрдкрд╛рдЗрд▓рд░рдорд╛ рд╕реНрдХреЗрд▓рд░ рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдХреЛ рд╕реНрд╡рдд: рднреЗрдХреНрдЯрд░рд╛рдЗрдЬреЗрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВрдХреЛ рд╡рд┐рдкрд░реАрдд, рдирдпрд╛рдБ API рд▓реЗ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐ рднреЗрдХреНрдЯреЛрд░рд╛рдЗрдЬреЗрд╢рдирд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред
- рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рд▓реЛрдХреЗрд▓рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдкрд╛рда рдврд╛рдБрдЪрд╛, рдкреНрд░рджрд░реНрд╢рди рд░ рдкрдвреНрди java.io.Console рд╡рд░реНрдЧрдорд╛ рдврд╛рдБрдЪрд╛, printf, readPassword рд░ readLine рд╡рд┐рдзрд┐рд╣рд░реВ рдердкрд┐рдпреЛред System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", рдирдпрд╛рдБ рдорд┐рддрд┐()) 2024-mai-16 jeudi
- рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдо рдПрдкреАрдЖрдИрдХреЛ рджреЛрд╕реНрд░реЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдердкрд┐рдПрдХреЛ рдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рдордзреНрдпрд╡рд░реНрддреА рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЬреБрди рдЕрд╡рд╕реНрдерд┐рдд рдмрд┐рд▓реНрдЯ-рдЗрди рдордзреНрдпрд╡рд░реНрддреА рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЗрдЪреНрдЫрд┐рдд рдбреЗрдЯрд╛ рд░реВрдкрд╛рдиреНрддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдирднрдПрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫред рдиреЗрдЯрд┐рдн рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рдирдпрд╛рдБ рдордзреНрдпрд╡рд░реНрддреА рдЕрдкрд░реЗрд╢рди рд╕реНрдЯреНрд░рд┐рдо::рдЧрджрд░(рдЧрджрд░рд░) рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬреЛрдбрд┐рдПрдХрд╛ рдЫрдиреН, рдЬрд╕рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рд▓рд╛рдЧреВ рдЧрд░реЗрд░ рд╕реНрдЯреНрд░рд┐рдо рддрддреНрд╡рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫред jshell> Stream.of(1,2,3,4,5,6,7,8,9)ред gather(new WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [рек, рел, рем], [рен, рео, реп]]
- рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдШреЛрд╖рд┐рдд рд╡рд░реНрдЧрд╣рд░реВ рд░ "рдореБрдЦреНрдп" рд╡рд┐рдзрд┐рдХреЛ рдЕрдЬреНрдЮрд╛рдд рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рддреЗрд╕реНрд░реЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ/рд╕реНрдерд┐рд░ рдШреЛрд╖рдгрд╛рд╣рд░реВ, рддрд░реНрдХрд╣рд░реВрдХреЛ рдПрд░реНрд░реЗ рдкрд╛рд╕ рдЧрд░реНрджреИ, рд░ рд╡рд░реНрдЧ рдШреЛрд╖рдгрд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЕрдиреНрдп рд╕рдВрд╕реНрдерд╛рд╣рд░реВрд▓рд╛рдИ рд╡рд┐рддрд░рдг рдЧрд░реНрди рд╕рдХреНрдЫред // рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░ рд╢реВрдиреНрдп рдореБрдЦреНрдп(рд╕реНрдЯреНрд░рд┐рдВрдЧ[] рдЖрд░реНрдЧреНрд╕) { System.out.println("рд╣реЗрд▓реЛ рд╡рд░реНрд▓реНрдб!"); } } // рдЕрдм рддрдкрд╛рдИрд▓реЗ main() { System.out.println("рд╣реЗрд▓реЛ, рд╡рд░реНрд▓реНрдб!") рд░рджреНрдж рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ; }
- рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдХреЛ рджреЛрд╕реНрд░реЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдердкрд┐рдпреЛ рдЬрд╕рд▓реЗ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд╣рд░реВрд▓рд╛рдИ рд╕реБрдкрд░(...) рдХрд▓ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдпрджрд┐ рддреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЙрджрд╛рд╣рд░рдгрд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрджреИрди рднрдиреЗ рд╡рд┐рд░рд╛рд╕рдд рдкреНрд░рд╛рдкреНрдд рд╡рд░реНрдЧрдХреЛ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рдмрд╛рдЯ рдЕрднрд┐рднрд╛рд╡рдХ рд╡рд░реНрдЧрдХреЛ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдХрд▓ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рд╡рд░реНрдЧ рдмрд╛рд╣рд┐рд░реА { рд╢реВрдиреНрдп рд╣реЗрд▓реЛ () { System.out.println("рд╣реЗрд▓реЛ"); } рдХрдХреНрд╖рд╛ рднрд┐рддреНрд░реА { рднрд┐рддреНрд░реА () { рдирдорд╕реНрдХрд╛рд░ (); рд╕реБрдкрд░ (); } } }
- рд╕реНрдХреЛрдкреЗрдб рдорд╛рдирд╣рд░реВрдХреЛ рддреЗрд╕реНрд░реЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдердкрд┐рдпреЛ, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдбреЗрдЯрд╛рд▓рд╛рдИ рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рд╕рд╛рдЭреЗрджрд╛рд░реА рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ рд░ рдЪрд╛рдЗрд▓реНрдб рдереНрд░реЗрдбрд╣рд░реВ (рдорд╛рдирд╣рд░реВ рдЗрдирд╣реЗрд░рд┐рдЯ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН) рдмреАрдЪ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЖрджрд╛рдирдкреНрд░рджрд╛рди рдЧрд░рд┐рдпреЛред рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╕рдВрдпрдиреНрддреНрд░рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕реНрдХреЛрдкреЗрдб рдорд╛рдирд╣рд░реВ рд╡рд┐рдХрд╕рд┐рдд рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреН рд░ рдзреЗрд░реИ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдереНрд░реЗрдбрд╣рд░реВ (рд╣рдЬрд╛рд░реМрдВ рд╡рд╛ рд▓рд╛рдЦреМрдВ рдереНрд░реЗрдбрд╣рд░реВ) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдЕрдЭ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд╣реБрдиреНрдЫрдиреНред рд╕реНрдХреЛрдкреЗрдб рдорд╛рдирд╣рд░реВ рд░ рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рдЪрд░рд╣рд░реВ рдмреАрдЪрдХреЛ рдореБрдЦреНрдп рднрд┐рдиреНрдирддрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдкрд╣рд┐рд▓реЗ рдПрдХ рдкрдЯрдХ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ, рднрд╡рд┐рд╖реНрдпрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди, рд░ рдереНрд░реЗрдбрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдЕрд╡рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рд░рд╣рдиреНрдЫред
- рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдб рдХрдиреНрдХрд░рдиреНрд╕реА рдПрдкреАрдЖрдИрдХреЛ рддреЗрд╕реНрд░реЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдПрдХрд▓ рдмреНрд▓рдХрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдмрд╣реБ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реЗрд░ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрджреИред
- рдмрд╛рд╣реНрдп рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪ рд╡рд┐рдзрд┐рд╣рд░реВ (JVM рдмрд╛рд╣рд┐рд░) sun.misc.Unsafe рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рд╣рдЯрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдЕрдл-рд╣реЗрдк рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд░ рдмрд╛рд╣реНрдп рдХреЛрдбрд╕рдБрдЧ рдЕрдиреНрддрд░реНрдХреНрд░рд┐рдпрд╛ рдЧрд░реНрди, VarHandle API рд░ FFM (Foreign Function & Memory) API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫред
рдердк рд░реВрдкрдорд╛, рд╣рд╛рдореА JavaFX 23 рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдиреНрдЯрд░рдлреЗрд╕рдХреЛ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рдореБрдЦреНрдп Oracle JDK 23 рдорд╛ GraalVM JIT рдХрдореНрдкрд╛рдЗрд▓рд░рдХреЛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрдХреЛ рдкреНрд░рдХрд╛рд╢рдирд▓рд╛рдИ рдиреЛрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред
рд╕рд╛рдереИ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди GraalVM рдХреЛ рдирдпрд╛рдБ рд░рд┐рд▓реАрдЬ рд╣реЛ, рдЬрд╕рд▓реЗ JavaScript (Node.js), Python, Ruby, R, JVM (Java, Scala, Clojure, Kotlin) рд░ рднрд╛рд╖рд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХреБрдиреИ рдкрдирд┐ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ LLVM рдмрд┐рдЯрдХреЛрдб рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ (C, C++, Rust)ред JDK 23 рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреБрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрд▓реЗ рдореЗрдореЛрд░реА рдЦрдкрдд рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдХреЛрдбрдХреЛ рдЖрдХрд╛рд░рд▓рд╛рдИ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрджрдЫ, рд░ JIT рд╕рдВрдХрд▓рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬрд╛рднрд╛ рдХреЛрдбрдорд╛ рдкрд╛рдЗрдерди рд░ WebAssembly рдЗрдореНрдмреЗрдб рдЧрд░реНрдиреЗ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
рд╕реНрд░реЛрдд: opennet.ru

