рд╣рд╛рдВ, рдпрд╣ рдЬреЗрдбреАрдХреЗ 7 рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо рд╕реНрд╡рд┐рдЪ рдкрд░ рдПрдХ рд╕рдВрдкреВрд░реНрдг рд▓реЗрдЦ рд╣реИред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдЪрд┐рдд рд╕рд╛рдордЧреНрд░реА рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдХрдо рдЬреНрдЮрд╛рдд рд▓рдЧрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдХрд┐рд╕реА рднреА рджрд╛рджреА рдХреЛ 50 рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВ 3 рдкреНрд░рд╢реНрди рд╕реБрдЭрд╛рддрд╛ рд╣реВрдВ:
- (рд╕рд░рд▓) рдЗрд╕ рдХреЛрдб рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИ?
switch(5){ default: System.out.print(0); case 1: System.out.print(1); break; case 4: System.out.print(4); case 2: System.out.print(2); }
- рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 2 рд╡рд┐рдХрд▓реНрдк рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВред рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╢рд╛рдмреНрджрд┐рдХред
рдкрд╣рд▓рд╛ рд╕реНрд╡рд┐рдЪ рдХрдИ рдмрд╛рд░ рдзреАрдорд╛ рдХреНрдпреЛрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо JIT рдЕрдХреНрд╖рдо (-Djava.compiler = NONE) рдХреЗ рд╕рд╛рде? рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рд▓реВрдк рдореЗрдВ рдЬрд╛рдВрдЪреЗрдВ! рдЖрдк рдРрд╕реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬреЗрдЖрдИрдЯреА рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдереЛрдбрд╝рд╛ рдЦреЗрд▓рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЫреЛрдЯрд╛ рдЕрдВрддрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛ред - рдПрди рдорд╛рдорд▓реЛрдВ (рдХрдо рд╕реЗ рдХрдо рдЬреЗрдбреАрдХреЗ 7 рдореЗрдВ) рдХреЗ рдмреАрдЪ рд╕рдорд╛рди рдореВрд▓реНрдп рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЬрдЯрд┐рд▓рддрд╛ рдХреНрдпрд╛ рд╣реИ?
рдЬрд╡рд╛рдм:
- 01
- рд╣реИрд╢рдХреЛрдб () рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реНрд╡рд┐рдЪ рдХреА рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред рдиреАрдЪреЗ рд╡рд┐рд╡рд░рдгред
- рдорд╛рдорд▓реЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдУ (1), рдУ (рд▓реЙрдЧ рдПрди) рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдУ (рдПрди) рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред
рдЪрд▓реЛ рдареАрдХ рд╣реИред рдорд╛рдорд▓рд╛ рдореВрд▓реНрдпреЛрдВ, рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдХреЙрд▓ рдХрд░реВрдВрдЧрд╛ред
TableSwitch
рдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВред
javap -c Main.class
0: iconst_5
рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓реЗрдмрд▓ рдХрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреА рд╕реЗ рд▓реЗрдХрд░ рд╕рдмрд╕реЗ рдмрдбрд╝реА рддрдХ рдХреЗ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдкрддреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдПрдХ рддрд╛рд▓рд┐рдХрд╛ (рд╕рд░рдгреА) рдмрдирд╛рдИред рд╕реНрд╡рд┐рдЪ рдирд┐рд╖реНрдкрд╛рджрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ (рдЫрджреНрдо рдХреЛрдб):
if (val<low || val>high){ jump default; }else{ jump table[val - low]; }
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ: рдирд┐рдореНрди == 1, рдЙрдЪреНрдЪ == 4, рддрд╛рд▓рд┐рдХрд╛ == {39, 56, 32, 49}ред рдЪреВрдВрдХрд┐ рдХрдо рд╕реЗ рдЙрдЪреНрдЪ рддрдХ рдХреА рд╕рднреА рдЪрд╛рдмрд┐рдпрд╛рдВ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХреБрдВрдЬреА 3 рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рдореЗрдВ рд╣реИред
рдирд┐рд░реНрджреЗрд╢ 32 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рд╕рднреА рдорд╛рдорд▓реЗ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдпрд╣рд╛рдВ рд╕рдВрдХрд▓рдХ рдирд┐рд░рдВрддрд░ рдкреНрд░рдореБрдЦ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдХреЛрдб рдмрдирд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐, рдПрдХ рдореИрдЪ рдкрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЬрдм рддрдХ рдкрд╣рд▓рд╛ рдмреНрд░реЗрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рддрдм рддрдХ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред
LookupSwitch
рдПрдХ рд╡рд╛рдЬрд┐рдм рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдп рдмрд╣реБрдд рдХрдо рд╣реИрдВ? рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рджреЛ: 1 рдФрд░ 1,000,000 рд╣реИрдВ, рддреЛ рдПрдХ рд▓рд╛рдЦ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдирд╛рд╕рдордЭреА рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреБрдВрдЬреА 4 рдХреЛ 10 рдореЗрдВ рдмрджрд▓реЗрдВ, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ (рдпрджрд┐ рдЕрдЪрд╛рдирдХ рдирд╣реАрдВ, рддреЛ рдЗрд╕реЗ рдмрдврд╝рд╛рдПрдВ)ред рд╣рдо рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ (рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдмрд╛рдпрдЯреЗрдХреЛрдб рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реА рд░рд╣рд╛, рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛):
1: lookupswitch {
рдпрд╣рд╛рдВ рдПрдХ рдЯреЗрдмрд▓ рднреА рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП: рдХреБрдВрдЬреА рд╕рдВрдХреНрд░рдордг рд▓реЗрдмрд▓ рд╣реИред JVM рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЦреЛрдЬ рд░реИрдЦрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреБрдВрдЬреА рдХреЛ рддреЗрдЬрд╝ рдЦреЛрдЬ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЦреЛрдЬ рд╡рд┐рдзрд┐ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░реИрдЦрд┐рдХ рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрд╣рд▓рд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ (рдпрджреНрдпрдкрд┐ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ) рд╕реНрд╡рд┐рдЪ рдУ (рдПрди) рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рдеред рдЖрдЧреЗ рд╣рдо рдПрдХ рдФрд░, рдЕрдзрд┐рдХ рдореВрд░реНрдд рджреЗрдЦреЗрдВрдЧреЗред
рдЕрд╕рд▓реА рд▓рдбрд╝рдХреЗ рдФрд░ рд▓рдбрд╝рдХрд┐рдпрд╛рдВ рдкреВрдЫрддреЗ рд╣реИрдВ: рдХрдВрдкрд╛рдЗрд▓рд░ рдХреИрд╕реЗ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ - рдЯреЗрдмрд▓рд╡реЙрдЪ рдпрд╛ рд▓реБрдХрдЕрдкрд╕реНрд╡рд┐рдЪ? рдФрд░ рд╕рдмрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЛрдЧ OpenJDK рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ, рдЕрдиреНрдп JDK рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдкрд╕рдВрдж рдХреА рд╡рд┐рдзрд┐ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ) рдФрд░ com.sun.tools.javac.jvm.Gv.jen.java рдореЗрдВ рдУрдкрдирдЬрдбрдХ / langtools / src / share / classes рдореЗрдВ рд╕реЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВред
table_space_cost - рдЗрд╕ рдЖрдХрд╛рд░ рдореЗрдВ рд╢реНрд░реЗрдгреА рдХреЗ рд╕рднреА рдорд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд▓реЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди, hi, default_address рдФрд░ рдЪрдпрдирд┐рдд рд╕реНрд╡рд┐рдЪ рд╡рд┐рдзрд┐ (рдЯреЗрдмрд▓рд╡рд┐рдЪ) рдХреЗ рдорд╛рд░реНрдХрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
table_time_cost - 3 рдСрдкрд░реЗрд╢рди: рд░реЗрдВрдЬ (рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо) рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкрддрд╛ рд▓реЗрдмрд▓ рдирд┐рдХрд╛рд▓рдирд╛ред
рд▓реБрдХрдЕрдк_рд╕реНрдкреЗрд╕_рдХреЙрд╕реНрдЯ - рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА-рдкрддрд╛ рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП реи рдорд╛рди, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди, default_address, рдФрд░ рдЪрдпрдирд┐рдд рд╕реНрд╡рд┐рдЪ рд╡рд┐рдзрд┐ (рд▓реБрдХрдЕрдкрд╕реНрд╡рд┐рдЪ) рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд░реНрдХрд░ред
рд▓реБрдХрд┐рдВрдЧ_рдЯрд╛рдЗрдо_рдХреЙрд╕реНрдЯ - рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдорд╛рди рд▓реА рдЬрд╛рддреА рд╣реИ - рдПрдХ рд░реЗрдЦреАрдп рдЦреЛрдЬред
рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реА, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рд░рд▓ рд╣реИред рдЬрд╛рджреВ рдирдВрдмрд░ 3 ("рдФрд░ рдпреЗ рд▓реЛрдЧ рд╣рдореЗрдВ рдЕрдкрдиреА рдирд╛рдХ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ" (рд╕реА)) рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛
"String.hashCode рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЯрдХрд░рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред String.equals рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдирдЬрд░рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ?" - рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдЬрдм рддрдХ рдореИрдВрдиреЗ рдмрд╛рдпрдЯреЗрдХреЛрдб рдирд╣реАрдВ рд╕реАрдЦрд╛ред
switch(""){ case "AA": break; case "BB": break; }
0: ldc #27
рдпрд╣реА рд╣реИ, рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ, рд╕рднреА рдХреБрдВрдЬреА рдХреЗ рд╣реИрд╢ рдХреЛрдб рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рд▓реБрдХрдЕрдкрд╕реНрд╡рд┐рдЪ рд╣рдореЗрд╢рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╣реИрд╢ рд╕реБрд╕рдВрдЧрдд рд╣реЛред рдЬрдм рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╣реИрд╢ рдХреЛрдб рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдпрд╣ рд╣реИрд╢ рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рд╡реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рддреБрд▓рдирд╛ рднреА рдХреА рдЬрд╛рддреА рд╣реИ (рд╕рдВрднрд╛рд╡рд┐рдд 32-53 рдкрддреЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЯрдХрд░рд╛рд╡ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП String.equals () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░, рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рд╕рдВрдмрдВрдзрд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (56-70) рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордгред
рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдХрдИ рдЪрд╛рдмрд┐рдпрд╛рдВ рд╣реИрдВ?
switch(""){ case "Aa": break; case "BB": break; }
7: lookupswitch {
рдлрд┐рд░ рдЗрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд▓реБрдХрдЕрдкрд╕реНрд╡рд┐рдЪ рдореЗрдВ рдПрдХ рд╣реИрд╢ рдХреБрдВрдЬреА рдХреЗ рддрд╣рдд рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░, рдпрджрд┐ рдХреБрдВрдЬреА рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ String.equals () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рддреА рд╣реИрдВред 2 рдкреНрд░рд╢реНрди рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ 8 рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЬрдЯрд┐рд▓рддрд╛ рдУ (n) рдХреЗ рд╕рд╛рде рджреВрд╕рд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрджрд┐ рдпрд╣ JIT рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдерд╛, рддреЛ рд╣рдо рд╕реНрд╡рд┐рдЪ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдорд┐рд▓ рдкрд╛ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдмрд▓рд╡рд┐рдЪ рд▓реБрдХрд╕реНрд╡рд┐рдЪ (рдЬреЗрдЖрдИрдЯреА рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬ рд╣реЛрдЧрд╛ред рдЦреИрд░, рд╢рд╛рдпрдж рдпрд╣:
1. рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 1 рд╕реЗ рдПрди рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрди рдХреБрдВрдЬреА рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреЗрдмрд▓рд╡реЙрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
2. рдПрдХ рд╣реА рдХреБрдВрдЬреА, рд▓реЗрдХрд┐рди рдкреНрд▓рд╕ рдПрдХ рдФрд░, рдПрди рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рдеред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реБрдХрдЕрдкрд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
(рдЬреЗрдЖрдИрдЯреА рд╡рд┐рдХрд▓рд╛рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЕрдВрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред)
JIT рд╕реЗ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рд╡рд╣ рд╕рднреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдХрдИ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯреЗрдмрд▓рд╡реЙрдЪ рдХреА рддрд░рд╣ рдорд╛рдирддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрди = 721 рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ, рдореИрдВрдиреЗ рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рддреЗрдЬ рдЧрд┐рд░рд╛рд╡рдЯ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред
рдЕрдВрдд рдореЗрдВ, рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╣реА рдЬрдВрдЧрд▓реА рд╕рд▓рд╛рд╣ рдЦреБрдж рдХреЛ рд╕реБрдЭрд╛рд╡ рджреЗрддреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдордЬрд╝рд╛рдХ рд╕рдордЭреЗрдВ: "рджреЛрд╕реНрддреЛрдВ, рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рдХреБрдЫ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд▓рдЧрд╛рддрд╛рд░ рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде 1000 рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕реМ рдорд┐рд▓рд┐рдпрди рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЗрди рдХреБрдЫ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХреЗ рдмрд╛рд╣рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВред рдФрд░ рдЕрдЧрд░ рдЗрд╕ рд▓реВрдк рдореЗрдВ рдЙрд╕реА рд╣реИрд╢ рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рддреЛ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВред "