рд╣реИрдмреЗ рдкрд░ рдПрдХ рдЕрджреНрднреБрдд рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рд╕реЗ: "рд╕рд╛рдЗрдорди рд░рд┐рдЯрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬрд┐рд╕рдиреЗ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЬрд╝рд┐рдВрдЧ рдЬреЗрд╡реАрдПрдо рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдВрдкрдиреА рдЕрдЬрд╝реБрд▓ рдХреЗ рдЙрдк-рддрдХрдиреАрдХреА рдирд┐рджреЗрд╢рдХ рдФрд░ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ, рд╕реА 4 (рд▓рдЧрд╛рддрд╛рд░ рд╕рдорд╡рд░реНрддреА рдХреЙрдореНрдкреИрдХреНрдЯрд┐рдВрдЧ) рдХрд▓реЗрдХреНрдЯрд░) ┬╗
рдиреАрдЪреЗ рдирдП JDK 12 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдирдХреЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдХреБрдЫ рдореБрд╢реНрдХрд┐рд▓реЗрдВ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдирдП рдмрд┐рд▓реНрдб рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдореИрдВрдиреЗ рдХрдИ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦреЗ рдЬреЛ рдирд╡реАрдирддрдо рдЬрд╛рд╡рд╛ рд░рд┐рд▓реАрдЬрд╝ ( JDK 10 , JDK 11 ) рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЕрдм JDK 12 рдХреЗ рдЕрдВрдзреЗрд░реЗ рдкрдХреНрд╖ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛, рдХреБрдЫ рдРрд╕реЗ рдиреБрдХрд╕рд╛рдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

JDK 12 рдореЗрдВ рд╕рднреА рдЬрд╛рд╡рд╛ рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рд▓реЗрдХрд░ рдЖрдЬ рддрдХ рдХреА рд╕рдмрд╕реЗ рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ (рдореИрдВрдиреЗ JDK 10 рдореЗрдВ 109 рдФрд░ JDK 11 рдореЗрдВ 90 рдХреА рдЧрд┐рдирддреА рдХреА)ред рдпрд╣ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ - рд░рд┐рд▓реАрдЬ рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рдХрд╛рд░рдг, рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдВрдЧреЗ, рдФрд░ рдХреБрдЫ рдХрдоред
рдореИрдВ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рддрд╛рд░реНрдХрд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджреВрдВрдЧрд╛: рдЬрд╛рд╡рд╛, рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝, рдЬреЗрд╡реАрдПрдо рдФрд░ рдЕрдиреНрдп рдЬреЗрдбреАрдХреЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ред
рднрд╛рд╖рд╛ рдкрд░рд┐рд╡рд░реНрддрди
рд╡рд╣ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рдореИрдВ (рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧ) JDK 12 рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдирдпрд╛ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ ( JK 325 ) рд╣реИред рдпрд╣ "рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рднрд╛рд╖рд╛ рдкрд░рд┐рд╡рд░реНрддрди рднреА рд╣реИред 2018 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ JEP 12 рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ "рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдареАрдХ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреА рдХреБрдВрдЬреА рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЬрд╛рд╡рд╛ рдПрд╕рдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рдирдП рд╕реНрд╡рд┐рдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдмреЗ рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред
JDK 12 рдореЗрдВ, рдПрдХ рд╕реНрд╡рд┐рдЪ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрди рдЧрдпрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА "рд╕рд╛рдордЧреНрд░реА" рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рддреБрд░рдВрдд рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдореИрдВ JEP рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ:
рдкреБрд░рд╛рдирд╛ рд╕реНрд╡рд┐рдЪint numLetters; switch (day) { case MONDAY: case FRIDAY: case SUNDAY: numLetters = 6; break; case TUESDAY: numLetters = 7; break; case THURSDAY: case SATURDAY: numLetters = 8; break; case WEDNESDAY: numLetters = 9; break; default: throw new IllegalStateException("Huh? " + day); }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рд╕рдкреНрддрд╛рд╣ рдХреЗ day
рдХреЛ рдЪрд░ day
рдХреЗ рдирд╛рдо рдкрд░ рдореИрдк рдХрд░рддреЗ day
, рдлрд┐рд░ рдорд╛рди numLetters
рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рд╡рд╣ рд╕реНрд╡рд┐рдЪ рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╣реИ, рд╣рдо рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмрд╛рд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЧрд▓рдд рдХреЛрдб рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):
int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; default -> throw new IllegalStateException("Huh? " + day); };
рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рджреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред OpenJDK рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХреА рдЧрдИ рд╕реВрдЪреА рдирд╛рдордХ рдПрдХ рдЕрд▓реНрдк-рдЬреНрдЮрд╛рдд рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓рдВрдмреЛрджрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдСрдкрд░реЗрдЯрд░ ->
рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЕрднреА рднреА рдПрдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде break
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдЕрдиреНрдп рд╡рд┐рд╡рд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреЗрдИрдкреА рдкрдврд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ
рдПрдХ рдмрджрд▓рд╛рд╡ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдХрдИ рдЧреМрдг рднреА рд╣реИрдВред
рдЯреАрдЬрд╝рд┐рдВрдЧ рдХрд▓реЗрдХреНрдЯрд░
рд╕реНрдЯреНрд░реАрдореНрд╕ рдПрдкреАрдЖрдИ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдХрд▓реЗрдХреНрдЯрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдирдпрд╛ рдХрд▓реЗрдХреНрдЯрд░ рд╣реИред teeing()
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдХрд▓реЗрдХреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЯреАрдЗрдВрдЧ рдХрд▓реЗрдХреНрдЯрд░ рддреАрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рджреЛ рдХрд▓реЗрдХреНрдЯрд░ рдФрд░ рдПрдХ рджреНрд╡рд┐рднрд╛рдЬрдиред рдЗрд╕ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдХрд╛рдо рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╣реИрдмреЗ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред
рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╣ рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдЪрд┐рддреНрд░ рдмрдирд╛рдпрд╛:

рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рд╕рднреА рдорд╛рди рдкреНрд░рддреНрдпреЗрдХ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХрд▓реЗрдХреНрдЯрд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП BiFunction рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдФрд╕рдд рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ (рд╣рд╛рдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд▓реЗрдХреНрдЯрд░ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП averagingInt()
, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ)ред
double average = Stream.of(1, 4, 2, 7, 4, 6, 5) .collect(teeing( summingDouble(i -> i), counting(), (sum, n) -> sum / n) );
рдкрд╣рд▓рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдпреЛрдЧ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ - рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдмрд┐рдлрд╝рдВрдХреНрд╢рди рдФрд╕рдд рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдпреЛрдЧ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред
java.io
InputStream skipNBytes(long n)
- рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ skips рдФрд░ InputStream skipNBytes(long n)
рдмрд┐рд▓реНрдХреБрд▓ n рдмрд╛рдЗрдЯреНрд╕ред рдпрджрд┐ n рд╢реВрдиреНрдп рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдЫреЛрдбрд╝ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
java.lang
рдПрдХ рдирдпрд╛ рдкреИрдХреЗрдЬ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ, java.lang.constant, рдЬреЛ рдирд┐рд░рдВрддрд░ JVM API, JEP 334 рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ ред
рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирд┐рд░рдВрддрд░ рдкреВрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдмрд╛рдпрдЯреЗрдХреЛрдб рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдВрдб рдХрд░рддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╡реЗ рд▓реЛрдбрд┐рдВрдЧ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдХреНрд▓рд╛рд╕ рдлрд╛рдЗрд▓реНрд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░реЗрдВред рдирд┐рд░рдВрддрд░ JVM API рдПрдХ рд╕реНрдерд┐рд░ (рд╡рд░реНрдЧ, рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдерд┐рд░рд╛рдВрдХ, MethodHandle
, MethodHandle
рд╕реНрдерд┐рд░рд╛рдВрдХ, MethodType
рд╕реНрдерд┐рд░рд╛рдВрдХ) рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд░реВрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдиреЗ рдХрдИ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЕрдм рдПрдХ describeConstable()
рд╡рд┐рдзрд┐ рд╣реИ:
- рд╡рд░реНрдЧ
- рджреЛрд╣рд░рд╛
- enum
- рдлреНрд▓реЛрдЯ
- рдкреВрд░реНрдгрд╛рдВрдХ
- рд▓рдВрдмреЗ рд╕рдордп рддрдХ
- рддрд╛рд░
- MethodHandle
- MethodType
- VarHandle
рдПрдХ рдмреНрд░рд┐рдЯрд┐рд╢ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдХреЙрдиреНрд╕реНрдЯреЗрдмрд▓, рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди рдХрд╛рдВрд╕реНрдЯреЗрдмрд▓ рд╢рдмреНрдж рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ 11 рд╡реАрдВ рд╢рддрд╛рдмреНрджреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╣рдо рдЕрдХреНрд╕рд░ рдкреБрд▓рд┐рд╕ рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рд╕рд┐рджреНрдз 18 рд╡реАрдВ рд╢рддрд╛рдмреНрджреА рдХреЗ рдХрд▓рд╛рдХрд╛рд░, рдЬреЙрди рдХреЙрдиреНрд╕реНрдЯреЗрдмрд▓ рдХрд╛ рдирд╛рдо рднреА рд╣реИред рдпрд╣ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ describeTurner()
рд╡рд┐рдзрд┐ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣реЛрдЧреАред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ Constant Table
рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реИ, рдХрд╛рдиреВрди рдЕрдзрд┐рдХрд╛рд░реА рдпрд╛ рдкрд░рд┐рджреГрд╢реНрдп рдЪрд┐рддреНрд░рдХрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЕрдм resolveConstantDesc()
рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ:
- рджреЛрд╣рд░рд╛
- Enum.EnumDesc
- рдлреНрд▓реЛрдЯ
- рдкреВрд░реНрдгрд╛рдВрдХ
- рд▓рдВрдмреЗ рд╕рдордп рддрдХ
- рддрд╛рд░
java.lang.Character
рдирдП рдпреВрдирд┐рдХреЛрдб рдмреНрд▓реЙрдХ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рд╣рдореЗрд╢рд╛ рдпрд╣ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧреЛрдВ рдиреЗ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛рдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:
- рд╢рддрд░рдВрдЬ рдХреЗ рдкреНрд░рддреАрдХ
- рдорд╛рдпрди рдирдВрдмрд░
- рд╕реЛрдЧреНрдбрд┐рдпрди рдПрдХ рдкреВрд░реНрд╡реА рдИрд░рд╛рдиреА рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЕрдм 11 рд╡реАрдВ рд╢рддрд╛рдмреНрджреА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
- рдкреБрд░рд╛рдирд╛ рд╕реЛрдЧреНрдбрд┐рдпрди рдПрдХ рдкреБрд░рд╛рдирд╛ рд╣реИ (рдФрд░, рдореБрдЭреЗ рд╢рдХ рд╣реИ, рд╕реЛрдЧреНрдбрд┐рдпрди рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╕реАрдорд┐рдд рд╣реИ)
java.lang.Class
arrayType()
рдЙрд╕ Class
рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП Class
рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕ Class
рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИред рдпрд╣ jshell
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
jshell> (new String[2]).getClass().getName() $11 ==> "[Ljava.lang.String;" jshell> (new String[2]).getClass().arrayType() $12 ==> class [[Ljava.lang.String; jshell> "foo".getClass().arrayType() $15 ==> class [Ljava.lang.String;
рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЕрд░реНрде рдХреНрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдПрдХ Class
рдХреЛ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред
componentType()
getComponentType()
, getComponentType()
рд╕рдорд╛рди рд╣реИред рд╕рд╡рд╛рд▓ рднреАрдЦ рдорд╛рдБрдЧрддрд╛ рд╣реИ - рдХреНрдпреЛрдВ рдПрдХ рдирд┐рд░рд░реНрдердХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ?
descriptorString()
- рдлрд┐рд░ рд╕реЗ, getName()
рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Class
рдЕрдм рдирдП рдирд┐рд░рдВрддрд░ JVM API рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ TypeDescriptor
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
lava.lang.String
indent()
- рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рддреЛ рдкреНрд░рдореБрдЦ рд╕реНрдерд╛рдиреЛрдВ рдХреА рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА (рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ)ред
transform()
- рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
java.lang.invoke
VarHandle
рдЕрдм рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╡рд┐рд╡рд░рдг рд▓реМрдЯрд╛рдирд╛ рд╣реИред
java.net.SecureCacheResponse
рдФрд░ java.net.ssl.HttpsConnection
рдореЗрдВ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рд╣реИ, getSSLSession()
рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП SSLSession
рдпреБрдХреНрдд Optional
рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИред
java.nio.files
Files
рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рд╣реИ, mismatch()
, рдЬреЛ рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдкрд╣рд▓реА рдмреЗрдореЗрд▓ рдмрд╛рдЗрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдпрд╛ рдХреЛрдИ рдмреЗрдореЗрд▓ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ -1L рдХрд░рддрд╛ рд╣реИред
java.text
рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рд╣реИ CompactNumberFormat
ред рдпрд╣ NumberFormat
рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдХреЙрдореНрдкреИрдХреНрдЯ рд░реВрдк рдореЗрдВ рдПрдХ рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреЙрдореНрдкреИрдХреНрдЯ рд░реВрдк рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг - 1M
рдмрдЬрд╛рдп 1M
, рдЗрд╕ рдкреНрд░рдХрд╛рд░ - рдиреМ рд╡рд░реНрдгреЛрдВ рдХреЗ рдмрдЬрд╛рдп рджреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред NumberFormat
рдФрд░ java.text.spi.NumberFormatProvider
рдХреЛ рдирдП getCompactNumberInstance()
рд╡рд┐рдзрд┐ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдирдИ рдПрдирдо рднреА рд╣реИ, NumberFormatStyle
рдЬрд┐рд╕рдХреЗ рджреЛ рдЕрд░реНрде рд╣реИрдВ: рд▓рдВрдмреА рдФрд░ рдЫреЛрдЯреАред
java.util.concurrent
рдХрдВрдкреНрд▓реАрд╢рдирд╕реНрдЯреЗрдЬ рдореЗрдВ рдЕрдм рддреАрди рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдУрд╡рд░рд▓реЛрдбреЗрдб рдлреЙрд░реНрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- exceptionallyAsync
- exceptionallyCompose
- exceptionallyComposeAsync
рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдПрдХ CompletionStage
рдХреЛ рдПрдХ рдХрдВрдкреНрд▓реАрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рддреА рд╣реИрдВ, рддреЛ рдПрдХ CompletionStage
рд╕реЗ рдПрдХ рдирдИ CompletionStage
рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреА рд╣реИрдВред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
javax.crypto
Cipher
рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдирдпрд╛ toString()
рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ Cipher
рдкрд░рд┐рд╡рд░реНрддрди, рдореЛрдб рдФрд░ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
javax.naming.ldap.spi
рдпрд╣ JDK 12 рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреИрдХреЗрдЬ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рджреЛ рд╡рд░реНрдЧ рд╣реИрдВ: LdapDnsProvider
, рдЬреЛ LDAP рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди DNS рд▓реБрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рддрд╛ рд╡рд░реНрдЧ рд╣реИ, рдФрд░ LdapDnsProviderResults
рдЬреЛ LDAP URL рдХреЗ рд▓рд┐рдП DNS рд▓реБрдХрдЕрдк рдкрд░рд┐рдгрд╛рдо рдХреЛ LdapDnsProviderResults
рдХрд░рддрд╛ рд╣реИред
рдЭреВрд▓рд╛
рд╕реНрд╡рд┐рдВрдЧ рдЕрднреА рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ! рд╣рд╛рдВ, getChooserShortcutPanelFiles()
рдЕрдм рдПрдХ рдирдпрд╛ getChooserShortcutPanelFiles()
рд╡рд┐рдзрд┐ рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЪрдпрди рд╢реЙрд░реНрдЯрдХрдЯ рдмрд╛рд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред
рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдмрджрд▓рд╛рд╡
JEP 189: рд╢рдиреИрдиреНрдбреЛрдГ рд▓реЛ-рдкреЙрдЬрд╝-рдЯрд╛рдЗрдо рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░
рд╢реЗрдирд╛рдиреНрджрд╛рд╣ 2014 рдореЗрдВ Red Hat рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рдПрдХ рд╢реЛрдз рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ JVM рдореЗрдВ рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдХрдо рд╡рд┐рд▓рдВрдмрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдЗрд╕рдХрд╛ рд▓рдХреНрд╖реНрдп 20 рдЬреАрдмреА рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдвреЗрд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо 1. рдард╣рд░рд╛рд╡ рдХрд╛ рд╕рдордп рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реИ - рдЬреИрд╕рд╛ рдХрд┐ рд╢рдирд╛рдВрдбреЛ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛ , рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдЗрд╕ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪреЗрдВ рдЬреЛ рд╣рдо рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред
рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди G1 рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬрдм рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд┐рд▓рдВрдм рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИред рдЬреА 1 рдвреЗрд░ рд╕реНрдерд╛рди (рдкреБрд░рд╛рдиреЗ рдФрд░ рдкреБрд░рд╛рдиреЗ рджреЛрдиреЛрдВ) рдХреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреА рдкреАрдврд╝реА рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬрдм G1 рдХреЛ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХрд┐рдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред JDK 12 рд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рд╕реЗрдЯ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рд╣реБрдЖ рдерд╛, рддреЛ рд╕рднреА рдХрд╛рдореЛрдВ рдХреЛ рдПрдХ рдкрд░рдорд╛рдгреБ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рдХрднреА-рдХрднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдвреЗрд░ рд╕реНрдерд╛рди рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг, рд╕рдВрдЧреНрд░рд╣ рд╕реЗрдЯ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рддрд╛ рдерд╛ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдард╣рд░рд╛рд╡ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛ рдкрд╛рддрд╛ рдерд╛ред
JDK 12 рдореЗрдВ, рдпрджрд┐ G1 рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЖрдзреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдмрд╛рдзрд┐рдд рдХрд░ рджреЗрдЧрд╛ рдпрджрд┐ рдпрд╣ рдирдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬреА 1 рдХрд╛ рд╢реБрджреНрдз рдкреНрд░рднрд╛рд╡ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдЬрдм рдПрдХ рдЫреЛрдЯрд╛ рдард╣рд░рд╛рд╡ рд╕рдордп рдкрд░ рдкрд╣реБрдВрдЪ рдЬрд╛рдПред
рдпрд╣ рдЬреА 1 рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдмрд╛рдХреА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЬреЗрд╡реАрдПрдо рд╣реАрдк рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, рдпрд╣ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрдЯрд░ рд╕реЗ рдореЗрдореЛрд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрдИ рдмрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╣реАрдк рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред
G1 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдкреВрд░реНрдг рд╕рдВрдЧреНрд░рд╣ рдХреЗ рджреМрд░рд╛рди, рдФрд░ рджреВрд╕рд░рд╛, рд╕рдорд╛рдирд╛рдВрддрд░ рдЪрдХреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рджреМрд░рд╛рдиред G1 рдкреВрд░реНрдг рд╕рдВрдЧреНрд░рд╣ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрдо рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде, рд╕рдВрдЧреНрд░рд╣ рдЪрдХреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬреА 1 рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореЗрдореЛрд░реА рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рдЦ рд╕рдХрддрд╛ рд╣реИред
JDK 12 рдореЗрдВ, G1 рд╕рдордп-рд╕рдордп рдкрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд▓реВрдк рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдпрд╛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛, рдЬрдмрдХрд┐ рдЬрд╛рд╡рд╛ рд╣реАрдк рдХреЗ рд╕рдордЧреНрд░ рдЙрдкрдпреЛрдЧ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИред рдЕрдкреНрд░рдпреБрдХреНрдд рдореЗрдореЛрд░реА рдХреЛ рдЕрдзрд┐рдХ рд╕рдордп рдкрд░ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдирдИ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдлреНрд▓реИрдЧ -XX:G1PeriodicGCInterval
рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪреЗрдХ рдХреЗ рдмреАрдЪ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЗрд╡реАрдПрдо рдореЗрдореЛрд░реА рдХрд╛ рдЕрдзрд┐рдХ рд░реВрдврд╝рд┐рд╡рд╛рджреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА рдЬреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░рд╣реЗ рд╣реИрдВред
рдЕрдиреНрдп рдирдП JDK рдлреАрдЪрд░реНрд╕
рдЬрд╛рд╡рд╛ рдорд╛рдЗрдХреНрд░реЛрдмреЗрдирдорд╛рд░реНрдХрд┐рдВрдЧ рд╣рд╛рд░реНрдиреЗрд╕ (рдЬреЗрдПрдордПрдЪ) рдХреЛ рдПрд▓реЗрдХреНрд╕реА рд╢рд┐рдкрд┐рд▓реЗрд╡ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдУрд░реЗрдХрд▓ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рдордВрдЪ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдПрд▓реЗрдХреНрд╕реА рдиреЗ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдХрдИ рд╕рд░рд▓ рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реА рдЬреЛ рд╡реЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ: рд╡рд╛рд░реНрдо рдЕрдк, рдЕрдкрд╡рд╛рджреЛрдВ рд╕реЗ рдмрдЪреЗрдВ рдЖрджрд┐ред
рдЕрдм JMH рдХреЛ OpenJDK рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреЛ рдХреЛрдИ рднреА рдЦреБрдж рдЬреЗрдбреАрдХреЗ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдХреЛрдб рдмрджрд▓рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рд╡рд╣ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд╛рде рд╣реА рд╡рд┐рднрд┐рдиреНрди рд░рд┐рд▓реАрдЬ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд╣реИрдВ; рдЬреЗрдПрдордПрдЪ рдХрд╛ рдбрд┐рдЬрд╛рдЗрди рдРрд╕рд╛ рд╣реИ рдХрд┐ рдЬрд╣рд╛рдВ рдЬрд░реВрд░рдд рд╣реИ рд╡рд╣рд╛рдВ рдирдП рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред
OpenJDK рдореЗрдВ рдЖрд░реНрдо 64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рджреЛ рдкреЛрд░реНрдЯ рд╣реИрдВ, рдПрдХ рдУрд░реЗрдХрд▓ рджреНрд╡рд╛рд░рд╛ рдФрд░ рджреВрд╕рд░рд╛ рд░реЗрдб рд╣реИрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛, рдФрд░ рдУрд░реЗрдХрд▓ рдиреЗ рдЬреЗрдбреАрдХреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдпрд╣ рдХреЗрд╡рд▓ рд░реЗрдб рд╣реИрдЯ рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЕрднреА рднреА рд╕рдорд░реНрдерд┐рдд рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реИред
рдбреЗрдЯрд╛ рд╢реЗрдпрд░рд┐рдВрдЧ (CDS) рдХреНрд▓рд╛рд╕ рдУрд░реЗрдХрд▓ JDK рдореЗрдВ рдПрдХ рдХрдорд░реНрд╢рд┐рдпрд▓ рдлреАрдЪрд░ рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ред Oracle JDK рдФрд░ OpenJDK рдХреЗ рдмреАрдЪ рд╕рднреА рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрдВрддрд░реЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JDK 11 рдореЗрдВ рдХрд┐рдП рдЧрдП рд╣рд╛рд▓рд┐рдпрд╛ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде, рдЗрд╕реЗ OpenJDK рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реАрдбреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред 64-рдмрд┐рдЯ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП JDK 12 рдореЗрдВ рдЕрдм lib/server
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ classes.jsa
рдлрд╛рдЗрд▓ рд╣реИред рдпрд╣ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдХреНрд╖рд╛рдУрдВ" рдХреЗ рд▓рд┐рдП рд╕реАрдбреАрдПрд╕ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ JDK рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ; рдореБрдЭреЗ рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЪреВрдВрдХрд┐ рд╕реАрдбреАрдПрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ -Xshare:auto
рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рд╕реЗ рд▓рд╛рдн рд╣реЛрдЧрд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
JDK 12 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде switch
рд╕рд╛рде рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирдП рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред G1 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗред
рд░рд┐рд▓реАрдЬ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде, рдореИрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ред рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА рдпрджрд┐ рдЖрдк рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд░реНрдерди рдХреЗ рдЕрдЧрд▓реЗ рд░рд┐рд▓реАрдЬ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред
рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдЬрд╝реБрд▓реБ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП JDK 12 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ ред рдЙрдиреНрд╣реЗрдВ рдЕрд╡рд╢реНрдп рдЖрдЬрдорд╛рдПрдВред