рдореЗрд░рд╛ рдирд╛рдо рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдХреЛрддреНрд╕реБрд░реВрдмрд╛ рд╣реИ, рдореИрдВ рдбреЛрдорд┐рдХреНрд▓рд┐рдХ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдиреБрднрд╡ рд╡рд╛рд▓реЗ рдХрдИ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЗрд╡реАрдПрдо рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛ рд╕рдореБрд░рд╛рдИ рдХреА рдЗрд╕ рдпрд╛рддреНрд░рд╛ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рднрд╛рд╖рд╛ рдореЗрдВ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (рдЬреЗрд╡реАрдПрдо) рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛редрдПрдХ рд░рд╣рд╕реНрдпрдордп рдмрд╛рдЗрдЯрдХреЛрдб рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╣рд╛рдВ рд░рд╣рддрд╛ рд╣реИ?рдореИрдВ рдЕрдЪрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛редрдореБрдЭреЗ рдЬреЗрд╡реАрдПрдо рдФрд░ рдмрд╛рдИрдЯреЗрдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
JVM рдХрд╛ рдЙрджреНрднрд╡ рд╕реНрд▓реЛрдЧрди рд╡рдВрд╕ рд░рди рдПрдиреАрд╡реЙрд░ (WORA) рдХреЗ рддрд╣рдд рд╕рди рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрдореНрд╕ рдореЗрдВ рд╣реБрдЖ рдерд╛ред рдХрд╣реАрдВ рднреА рдПрдХ рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рд▓рд┐рдЦреЗрдВ рд▓рд┐рдЦреЗрдВ (WOCA) рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд , WORA рдкреНрд░рддреНрдпреЗрдХ OS рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рдЕрд░реНрде рд░рдЦрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб (рдмрд╛рдпрдЯреЗрдХреЛрдб) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ редрдПрдХ рдмрд╛рд░ рд▓рд┐рдЦреЗрдВ рдХрд╣реАрдВ рднреА (рдХрд╛рд░реНрдп)рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦреЗрдВ рдХрд╣реАрдВ рднреА рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ (WOCA)JVM рдФрд░ рдмрд╛рдЗрдЯрдХреЛрдб, WORA рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЖрдзрд╛рд░ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ OS рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВредрдмрд╛рдИрдЯрдХреЛрдб
рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдХ рдмрд╛рдЗрдЯрдХреЛрдб рдХреНрдпрд╛ рд╣реИ, рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдмреЗрд╢рдХ, рдпрд╣ рдХреЛрдб рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛редрд╕реНрд░реЛрдд:class Solenya(val jarForPickles: Any? = Any(), var ingredientsCount: Int = 0) {
fun add(ingredient: Any) {
ingredientsCount = ingredientsCount.inc()
}
fun warmUp(duration: Int) {
for (x in 1..duration)
println("Warming")
}
init {
val jarForPickles = takeJarForPickles()
val pickles = Any()
val water = Any()
add(pickles)
add(water)
warmUp(10)
}
private fun takeJarForPickles(): Any = openLocker()
private fun openLocker(): Any = takeKeyForLocker()
private fun takeKeyForLocker(): Any = {}
}
рдмрд┐рд▓реНрдЯ-рдЗрди Intellij IDEA рдЯреВрд▓реНрд╕ ( рдЯреВрд▓реНрд╕ -> рдХреЛрдЯрд▓рд┐рди -> рд╢реЛ рдХреЛрдЯрд▓рд┐рди рдмрд╛рдпрдЯреЗрдХреЛрдб ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдПрдХ рдбрд┐рд╕реЗрдмрд▓реНрдб рдмрд╛рдпрдЯреЗрдХреЛрдб рдорд┐рд▓рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдПрдХ рднрд╛рдЧ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ):...
INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/Object;)V
L5
L6
LINENUMBER 12 L6
RETURN
L7
LOCALVARIABLE this Lcom/company/Solenya; L0 L7 0
LOCALVARIABLE ingredient Ljava/lang/Object; L0 L7 1
LOCALVARIABLE $i$f$add I L1 L7 2
MAXSTACK = 2
MAXLOCALS = 5
public final warmUp(I)V
L0
LINENUMBER 19 L0
ICONST_1
ISTORE 2
...
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ - рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╕реЗрдЯред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдФрд░ рдХрд┐рд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЬреЗрд╡реАрдПрдо рдХреА рдЖрдВрддрд░рд┐рдХ рд░рд╕реЛрдИ рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАредрдЬреЗрд╡реАрдПрдо рд░рд╕реЛрдИ
рдЖрдЗрдП рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ JVM рд░рдирдЯрд╛рдЗрдо рдореЗрдореЛрд░реА рдкрд░:рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрд╡реАрдПрдо рд╣рдорд╛рд░реА рд░рд╕реЛрдИ рд╣реИред рдЕрдЧрд▓рд╛, рд╢реЗрд╖ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:рд╡рд┐рдзрд┐ рдХреНрд╖реЗрддреНрд░ - рдХреБрдХрдмреБрдХ
рд╡рд┐рдзрд┐ рдХреНрд╖реЗрддреНрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдереНрд░реЗрдб рдлрд╝рдВрдХреНрд╢рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдкрд╛рдХ рдиреБрд╕реНрдЦрд╛ рдкреБрд╕реНрддрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рддрд▓реЗ рд╣реБрдП рдЕрдВрдбреЗ рд╕реЗ рд▓реЗрдХрд░ рдХреИрдЯрд▓рди рдЬрд╛рд░реНрдЬреБрдПрд▓рд╛ рддрдХ рд╕рдм рдХреБрдЫ рдкрдХрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдереНрд░реЗрдб 1. рдПрди - рдЯреАрдо рдХреБрдХ
рдзрд╛рд░рд╛рдПрдБ рдЙрдирдХреЗ (рд╡рд┐рдзрд┐ рдХреНрд╖реЗрддреНрд░) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд╛рд▓рди рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдкрд╛рд╕ рдкреАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рдЬреЗрд╡реАрдПрдо рд╕реНрдЯреИрдХ рд╣реИред рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░реАрдо рдХреА рддреБрд▓рдирд╛ рдХреБрдХ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрд╕реЗ рджрд┐рдП рдЧрдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдХрд░рддрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдм рдХреА рд░реЗрд╕рд┐рдкреА рд╕реЗредрдкреАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ - рдлреАрд▓реНрдб рдиреЛрдЯреНрд╕
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рдЙрдВрдЯрд░ рд░рдЬрд┐рд╕реНрдЯрд░ - рд╣рдорд╛рд░реА рдзрд╛рд░рд╛ рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдХрд╛рдЙрдВрдЯрд░ред рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкрддрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рд░рд╕реЛрдИ рдореЗрдВ, рдпреЗ рдХреБрдЫ рдиреЛрдЯ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЕрдм рд╣рдо рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдм рдХреЗ рдХрд┐рд╕ рдкреГрд╖реНрда рдкрд░ рд╣реИрдВредJvm рд╕реНрдЯреИрдХ
рдлреНрд░реЗрдо рдХрд╛ рдвреЗрд░ред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдо рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдб рдЪрд░ рдФрд░ рдСрдкрд░реЗрдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЕрдЪрд╛рд░ рдХреА рддреИрдпрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдиреЗрд╕реНрдЯреЗрдб рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:-> -> -> ...
рдлреНрд░реЗрдо - рдбреЗрд╕реНрдХрдЯреЙрдк
рдлрд╝реНрд░реЗрдо рдХреБрдХ рдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдПрдХ рдХрдЯрд┐рдВрдЧ рдмреЛрд░реНрдб рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЗ рд╣реИрдВредрд╕реНрдерд╛рдиреАрдп рдЪрд░ - рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрдВрдЯреЗрдирд░
рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдЪрд░ (рд╕реНрдерд╛рдиреАрдп рдЪрд░ рддрд╛рд▓рд┐рдХрд╛) рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ, рдкреНрд░рдХрд╛рд░ рдФрд░ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдкреЗрд╢реЗрд╡рд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВредрдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ - рдХрдЯрд┐рдВрдЧ рдмреЛрд░реНрдб
рдЬреЗрд╡реАрдПрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рд╕реНрдЯреЛрд░ рддрд░реНрдХред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди, рдвреЗрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн, рдЖрджрд┐ред рдирд┐рдХрдЯрддрдо рдЙрджрд╛рд╣рд░рдг рдореИрдВ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдПрдХ рдХрдЯрд┐рдВрдЧ рдмреЛрд░реНрдб рд╣реИ рдЬрд┐рд╕ рдкрд░ рдПрдХ рдЯрдорд╛рдЯрд░ рдФрд░ рдХрдХрдбрд╝реА рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рд╕рд▓рд╛рдж рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдо рдмреЛрд░реНрдб рдкрд░ рдХреЗрд╡рд▓ рд╡рд╣реА рдбрд╛рд▓рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдЕрдЧрд▓реЗ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗредрдвреЗрд░ - рд╡рд┐рддрд░рдг рддрд╛рд▓рд┐рдХрд╛

рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ; рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдлреНрд░реЗрдо рдХреЗрд╡рд▓ рдПрдХ рдзрд╛рдЧреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЪрд░ "рд▓рд╛рдЗрд╡" рд╣реИ рдЬрдмрдХрд┐ рдлреНрд░реЗрдо рдЬреАрд╡рд┐рдд рд╣реИ (рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдФрд░ рдвреЗрд░ рдЕрдиреНрдп рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реИ, рдФрд░ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рддрдХ рд░рд╣рддрд╛ рд╣реИред рд░рд╕реЛрдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рд╕реЗ, рд╣рдо рдПрдХ рд╡рд┐рддрд░рдг рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдХреЗрд▓реЗ рдЖрдо рд╣реИред рдФрд░ рдЗрд╕реЗ рдХреНрд▓реАрдирд░ рдХреА рдПрдХ рдЕрд▓рдЧ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЬреЗрд╡реАрдПрдо рд░рд╕реЛрдИред рдЕрдВрджрд░ рд╕реЗ рдПрдХ рдирдЬрд╝рд░ред рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЪрд▓реЛ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ warmUp
:
fun warmUp(duration: Int) {
for (x in 1..duration)
println("Warming...")
}
рдЕрд╕рдВрддреБрд╖реНрдЯ рдмрд╛рдЗрдЯрдХреЛрдб рд╕рдорд╛рд░реЛрд╣: public final warmUp(I)V
L0
LINENUMBER 19 L0
ICONST_1
ISTORE 2
ILOAD 1
ISTORE 3
ILOAD 2
ILOAD 3
IF_ICMPGT L1
L2
LINENUMBER 20 L2
LDC "Warming..."
ASTORE 4
L3
ICONST_0
ISTORE 5
L4
GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
ALOAD 4
INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/Object;)V
L5
L6
LINENUMBER 19 L6
ILOAD 2
ILOAD 3
IF_ICMPEQ L1
IINC 2 1
L7
GOTO L2
L1
LINENUMBER 21 L1
RETURN
L8
LOCALVARIABLE x I L2 L7 2
LOCALVARIABLE this Lcom/company/Solenya; L0 L8 0
LOCALVARIABLE duration I L0 L8 1
MAXSTACK = 2
MAXLOCALS = 6
рдлреНрд░реЗрдо рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди - рд╡рд░реНрдХрдкреНрд▓реЗрд╕ рдкреНрд░рд┐рдкрд░реЗрд╢рди
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЗрд╡реАрдПрдо рд╕реНрдЯреИрдХ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдПрдХ рдлреНрд░реЗрдо рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд╕реНрдЯреИрдХ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдФрд░ рдУрдкреЗрд░рд╛ рд╕реНрдЯреИрдХ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛрддреА рд╣реИред- рддрд╛рдХрд┐ рд╣рдо рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдЗрд╕ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди (рдХреЛрдб рдХрдореЗрдВрдЯ рдореЗрдВ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХреА рд╣реИ:
MAXSTACK = 2
MAXLOCALS = 6
- рд╣рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╕рд░рдгреА рдХреЗ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ:
LOCALVARIABLE x I L2 L7 2
LOCALVARIABLE this Lcom/company/Solenya; L0 L8 0
LOCALVARIABLE duration I L0 L8 1
- рд╕рдорд╛рд░реЛрд╣ рдХреА рджрд▓реАрд▓ рдЬрдм рдлреНрд░реЗрдо рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреА рд╣реИ рддреЛ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЕрд╡рдзрд┐ рдорд╛рди рдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ 1 рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╢реБрд░реВ рдореЗрдВ рдлреНрд░реЗрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:рдирд┐рд░реНрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ
рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдлреНрд░реЗрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЬреЗрд╡реАрдПрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ ( рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рдирд┐рд░реНрджреЗрд╢ рд╕реВрдЪрд┐рдпреЛрдВ ) рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдмрд╛рдВрдзреЗ рдФрд░ рд▓реЗрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрджрдо рд░рдЦреЗрдВ L0
: L0
LINENUMBER 19 L0
ICONST_1
ISTORE 2
ILOAD 1
ISTORE 3
ILOAD 2
ILOAD 3
IF_ICMPGT L1
ICONST_1 - 1
рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (Int):
ISTORE 2 - рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рдХрд╛ рдорд╛рди (рдкреНрд░рдХрд╛рд░ Int) рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ 2 рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ:
рдЗрди рджреЛ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЬрд╛рд╡рд╛-рдХреЛрдб рдореЗрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ int x = 1
:редILOAD 1 - рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ 1 рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХрд╛ рдорд╛рди рд▓реЛрдб рдХрд░реЗрдВ:
ISTORE 3 - рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рдХрд╛ рдорд╛рди (рдкреНрд░рдХрд╛рд░ Int) рдФрд░ 3 рдХреЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрддрд╛ рд╣реИ:
рдЗрди рджреЛ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЬрд╛рд╡рд╛-рдХреЛрдб рдореЗрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ int var3 = duration
:редILOAD 2 - рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ 2 рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╕реЗ рдПрдХ рдорд╛рди рд▓реЛрдб рдХрд░реЗрдВредILOAD 3 - рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ 3 рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╕реЗ рд▓реЛрдб рдорд╛рди:
IF_ICMPGT L1- рд╕реНрдЯреИрдХ рд╕реЗ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ред рдпрджрд┐ "рдирд┐рдЪрд▓рд╛" рдорд╛рди "рдКрдкрд░реА" рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд▓реЗрдмрд▓ рдкрд░ рдЬрд╛рдПрдВ L1
ред рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдЯреИрдХ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛редрдпрд╣рд╛рдБ рдЗрди рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рд▓рд╛рдЗрдиреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛: int x = 1;
int var3 = duration;
if (x > var3) {
....L1...
рд╣рдо рдХреЛрдбреЗрд▓рд┐рди -> рдЬрд╛рд╡рд╛ рдкрде рдХреЗ рд╕рд╛рде Intellij IDEA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рдХреЛ рдЕрдкрдШрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВ : public final void warmUp(int duration) {
int x = 1;
int var3 = duration;
if (x <= duration) {
while(true) {
String var4 = "Warming";
boolean var5 = false;
System.out.println(var4);
if (x == var3) {
break;
}
++x;
}
}
}
рдпрд╣рд╛рдВ рдЖрдк рдЕрдкреНрд░рдпреБрдХреНрдд рдЪрд░ ( var5
) рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ println()
ред рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдпрд╣ рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди ( println()
) рдФрд░ рд▓реИрдореНрдмреНрдбрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИ ред рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореГрдд рдХреЛрдб JIT рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╖рдп рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрд░рд╕реЛрдИ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рджреГрд╢реНрдп рдЖрд░реЗрдЦрдг, рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ "10 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рдиреА рдЙрдмрд╛рд▓рдиреЗ" рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкреЗрд╢реЗрд╡рд░ рдЕрдкрдиреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ:- рдПрдХ рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдм (рд╡рд┐рдзрд┐ рдХреНрд╖реЗрддреНрд░) рдЦреЛрд▓рддрд╛ рд╣реИ;
- рдкрд╛рдиреА рдХреЛ рдХреИрд╕реЗ рдЙрдмрд╛рд▓рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдорд┐рд▓рддреЗ рд╣реИрдВ (
warmUp()
); - рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдЕрд╕реНрдерд╛рдпреА рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд░реНрдо рдкреНрд▓реЗрдЯ (рдУрдкреЗрд░рд╛ рд╕реНрдЯреИрдХ) рдФрд░ рдХрдВрдЯреЗрдирд░ (рд╕реНрдерд╛рдиреАрдп рдЪрд░) рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд╛рд░реНрдпрд╕реНрдерд▓ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдЬреЗрд╡реАрдПрдо рд░рд╕реЛрдИред рдЕрдВрджрд░ рд╕реЗ рдПрдХ рдирдЬрд╝рд░ред рд╣реАрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:val pickles = Any()
рдбрд┐рд╕реЗрдмрд▓реНрдб рдмрд╛рдпреЛрдЯреЗрдХ: NEW java/lang/Object
DUP
INVOKESPECIAL java/lang/Object.<init> ()V
ASTORE 3
рдирдпрд╛ рдЬрд╛рд╡рд╛ / рд▓реИрдВрдЧ / рдСрдмреНрдЬреЗрдХреНрдЯ - Object
рдвреЗрд░ рд╕реЗ рдПрдХ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди ред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдвреЗрд░ рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ:рдбреАрдпреВрдкреА - рд╕реНрдЯреИрдХ рдХреЗ "рд╢реАрд░реНрд╖" рддрддреНрд╡ рдХрд╛ рджреЛрд╣рд░рд╛рд╡ред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рджреВрд╕рд░рд╛ рдЗрд╕реЗ рд▓реЛрдХрд▓ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдореЗрдВ рд╕реЗрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:INVOKESPECIAL рдЬрд╛рд╡рд╛ / рд▓реИрдВрдЧ / рдСрдмреНрдЬреЗрдХреНрдЯред <init> () рд╡реА - Object
рд╕реНрдЯреИрдХ рд╕реЗ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧ ( ) рдХреА рд╡рд╕реНрддреБ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг :рдПрдПрд╕рдЯреАрдЖрд░рдУ 3 рдЕрдВрддрд┐рдо рдЪрд░рдг рд╣реИ, рдЬреЛ рд╕реВрдЪрдХрд╛рдВрдХ 3. рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдореЗрдВ рд╡рд╕реНрддреБ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред рд░рд╕реЛрдИ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рджреГрд╢реНрдп рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛, рдореИрдВ рдПрдХ рд╕рд╛рдЭрд╛ рддрд╛рд▓рд┐рдХрд╛ (рдвреЗрд░) рдкрд░ рдЦрд╛рдирд╛ рдкрдХрд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ рд╡рд╕реНрддреБ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рддреБрд▓рдирд╛ рдХрд░реВрдВрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рддрд░рдг рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд╛рди рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ, рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдкрд░ рд▓реМрдЯрдиреЗ рдФрд░ рдЙрдЪрд┐рдд рдХрдВрдЯреЗрдирд░ (рд╕реНрдерд╛рдиреАрдп рдЪрд░) рдореЗрдВ рдкрддрд╛ (рд╕рдВрджрд░реНрдн) рдХреЗ рд╕рд╛рде рдПрдХ рдиреЛрдЯ рдлреЗрдВрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВредрдЬреЗрд╡реАрдПрдо рд░рд╕реЛрдИред рдЕрдВрджрд░ рд╕реЗ рдПрдХ рдирдЬрд╝рд░ред рдмрд╣реБ рд╕реВрддреНрд░рдг
рдЕрдм рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: fun add(ingredient: Any) {
ingredientsCount = ingredientsCount.inc()
}
рдпрд╣ рдереНрд░реЗрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрдШрдЯрдХ рдЧрдгрдирд╛ рд╣реИ ingredientsCount
ред рдПрдХ рдлрд╝рдВрдХреНрд╢рди add
, рдПрдХ рдШрдЯрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХрд░рддрд╛ рд╣реИ ingredientsCount
редрдПрдХ disassembled рдмрд╛рдЗрдЯрдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: ALOAD 0
ALOAD 0
GETFIELD com/company/Solenya.ingredientsCount : I
ICONST_1
IADD
PUTFIELD com/company/Solenya.ingredientsCount : I
рд╣рдорд╛рд░реЗ рдСрдкрд░реЗрдВрдб рдХреА рд╕реНрдерд┐рддрд┐ рдЬреИрд╕реЗ рд╣реА рдирд┐рд░реНрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ:рдПрдХ рдзрд╛рдЧреЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдХрдИ рдереНрд░реЗрдбреНрд╕ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рджреЛрдиреЛрдВ рдереНрд░реЗрдбреНрд╕ рдиреЗ рдПрдХ рд╕рд╛рде рдлрд╝реАрд▓реНрдб рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ ingredientsCount
рдФрд░ рдЗрд╕реЗ рд╕реНрдЯреИрдХ рдкрд░ рд▓рд┐рдЦрд╛ред рдлрд┐рд░ рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдлрд╝реАрд▓реНрдб ingredientsCount
рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рдмрд╛рд░ (рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдПрдХ рдмрд╛рд░) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдорд╛рди ingredientsCount
2 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдкреБрд░рд╛рдиреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ ingredientsCount
, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо 1 (рд▓реЙрд╕реНрдЯ рдЕрдкрдбреЗрдЯ рд╕рдорд╕реНрдпрд╛) рд╣реИредрд╕реНрдерд┐рддрд┐ рд╢реЗрдл рдХреА рдПрдХ рдЯреАрдо рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬреЛ рдбрд┐рд╢ рдореЗрдВ рдорд╕рд╛рд▓реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП:- рдПрдХ рд╡рд┐рддрд░рдг рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдбрд┐рд╢ (рд╣реАрдк) рдирд┐рд╣рд┐рдд рд╣реИред
- рд░рд╕реЛрдИ рдореЗрдВ рджреЛ рд░рд╕реЛрдЗрдП рд╣реИрдВ (рдереНрд░реЗрдб * 2)ред
- рдкреНрд░рддреНрдпреЗрдХ рдХреБрдХ рдХреА рдЕрдкрдиреА рдХрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдБ рд╡реЗ рдорд╕рд╛рд▓реЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (JVM Stack * 2)ред
- рдХрд╛рд░реНрдп: рдбрд┐рд╢ рдореЗрдВ рдорд╕рд╛рд▓реЛрдВ рдХреЗ рджреЛ рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗрдВред
- рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдЯреЗрдмрд▓ рдкрд░ рдПрдХ рдХрд╛рдЧрдЬрд╝ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реЗ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рд╕ рдкрд░ рд╡реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ (
ingredientsCount
)ред рдФрд░ рдорд╕рд╛рд▓реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
- рдорд╕рд╛рд▓реЛрдВ рдХреА рддреИрдпрд╛рд░реА рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд░рд╕реЛрдЗрдП рдХреЛ рдХрд╛рдЧрдЬ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬреЛрдбрд╝реЗ рдЧрдП рдорд╕рд╛рд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ;
- рдорд╕рд╛рд▓реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд░рд╕реЛрдЗрдпрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреА рд░рд╛рдп рдореЗрдВ, рдкрдХрд╡рд╛рди рдореЗрдВ рдорд╕рд╛рд▓реЗ рдбрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдПрдХ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ:- рдХреБрдХ # 1 рдиреЗ рдкрдврд╝рд╛ рдХрд┐ рдорд╕рд╛рд▓реЗ рдХреЗ 3 рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред
- рдХреБрдХ # 2 рдиреЗ рдкрдврд╝рд╛ рдХрд┐ рдорд╕рд╛рд▓реЗ рдХреЗ 3 рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред
- рджреЛрдиреЛрдВ рдЕрдкрдиреЗ рдбреЗрд╕реНрдХ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдорд╕рд╛рд▓реЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
- рджреЛрдиреЛрдВ рд╢реЗрдл рдбрд┐рд╢ рдореЗрдВ рдорд╕рд╛рд▓реЗ (3 + 2) рдорд┐рд▓рд╛рддреЗ рд╣реИрдВред
- рдХреБрдХ # 1 рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдорд╕рд╛рд▓реЗ рдХреЗ 4 рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред
- рдХреБрдХ # 2 рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдорд╕рд╛рд▓реЛрдВ рдХреЗ 4 рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред
рдиреАрдЪреЗ рдкрдВрдХреНрддрд┐: рдЙрддреНрдкрд╛рдж рдЧрд╛рдпрдм рдереЗ, рдкрдХрд╡рд╛рди рдорд╕рд╛рд▓реЗрджрд╛рд░ рдирд┐рдХрд▓рд╛, рдЖрджрд┐редрдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреИрд╕реЗ рддрд╛рд▓реЗ, рдзрд╛рдЧрд╛-рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░реНрдп, рдЖрджрд┐редрд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ
рдХрд┐рд╕реА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдмрд╛рдпрдЯреЗрдХреЛрдб рдореЗрдВ рдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрд╣реБрдд рдХрдо рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЙрд╕рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рди рд╣реЛред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЗ рдХрд╛рдо рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рдХреЗ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ рдлрд╛рдпрджреЗ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ, рдФрд░ рдкреЗрд╢реЗрд╡рд░ рд░реВрдк рд╕реЗ рдмрдврд╝рдиреЗ рдореЗрдВ рднреА рдорджрдж рдорд┐рд▓рддреА рд╣реИредрдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпреЗ рдЬреЗрд╡реАрдПрдо рдХреЗ рд╕рднреА рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рджреВрд░ рд╣реИрдВред рдХрдИ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк "рдЪреАрдЬреЗрдВ" рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рд░рдВрддрд░ рдкреВрд▓, рдмрд╛рдпрдЯреЗрдХреЛрдб рд╡реЗрд░рд┐рдлрд╛рдпрд░, рдЬреЗрдЖрдИрдЯреА, рдХреЛрдб рдХреИрд╢, рдЖрджрд┐ред рд▓реЗрдХрд┐рди рд▓реЗрдЦ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рдирд╣реАрдВ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЙрди рддрддреНрд╡реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВредрдЙрдкрдпреЛрдЧреА рдХрдбрд╝рд┐рдпрд╛рдБ: