JVM рд░рд╕реЛрдИ рдореЗрдВ рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рдкрдХрд╛рдиреЗ рд╕реЗ

рдореЗрд░рд╛ рдирд╛рдо рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдХреЛрддреНрд╕реБрд░реВрдмрд╛ рд╣реИ, рдореИрдВ рдбреЛрдорд┐рдХреНрд▓рд┐рдХ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдиреБрднрд╡ рд╡рд╛рд▓реЗ рдХрдИ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЗрд╡реАрдПрдо рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛ рд╕рдореБрд░рд╛рдИ рдХреА рдЗрд╕ рдпрд╛рддреНрд░рд╛ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рднрд╛рд╖рд╛ рдореЗрдВ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (рдЬреЗрд╡реАрдПрдо) рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдПрдХ рд░рд╣рд╕реНрдпрдордп рдмрд╛рдЗрдЯрдХреЛрдб рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╣рд╛рдВ рд░рд╣рддрд╛ рд╣реИ?

рдореИрдВ рдЕрдЪрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред



рдореБрдЭреЗ рдЬреЗрд╡реАрдПрдо рдФрд░ рдмрд╛рдИрдЯреЗрдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


JVM рдХрд╛ рдЙрджреНрднрд╡ рд╕реНрд▓реЛрдЧрди рд╡рдВрд╕ рд░рди рдПрдиреАрд╡реЙрд░ (WORA) рдХреЗ рддрд╣рдд рд╕рди рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрдореНрд╕ рдореЗрдВ рд╣реБрдЖ рдерд╛ред рдХрд╣реАрдВ рднреА рдПрдХ рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рд▓рд┐рдЦреЗрдВ рд▓рд┐рдЦреЗрдВ (WOCA) рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд , WORA рдкреНрд░рддреНрдпреЗрдХ OS рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рдЕрд░реНрде рд░рдЦрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб (рдмрд╛рдпрдЯреЗрдХреЛрдб) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ ред


рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦреЗрдВ рдХрд╣реАрдВ рднреА (рдХрд╛рд░реНрдп)


рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦреЗрдВ рдХрд╣реАрдВ рднреА рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ (WOCA)

JVM рдФрд░ рдмрд╛рдЗрдЯрдХреЛрдб, WORA рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЖрдзрд╛рд░ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ OS рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВред

рдмрд╛рдИрдЯрдХреЛрдб


рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдХ рдмрд╛рдЗрдЯрдХреЛрдб рдХреНрдпрд╛ рд╣реИ, рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдмреЗрд╢рдХ, рдпрд╣ рдХреЛрдб рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╕реНрд░реЛрдд:

class Solenya(val jarForPickles: Any? = Any(), var ingredientsCount: Int = 0) {


    /**
     *   
     *  @param ingredient -  
     */
    fun add(ingredient: Any) {
        ingredientsCount = ingredientsCount.inc()
        //- 
    }

    /**
     *   
     *  @param duration -   
     */
    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

  // access flags 0x11
  public final warmUp(I)V
    // annotable parameter count: 1 (visible)
    // annotable parameter count: 1 (invisible)
   L0
    LINENUMBER 19 L0
    ICONST_1
    ISTORE 2
...

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ - рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╕реЗрдЯред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдФрд░ рдХрд┐рд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЬреЗрд╡реАрдПрдо рдХреА рдЖрдВрддрд░рд┐рдХ рд░рд╕реЛрдИ рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЬреЗрд╡реАрдПрдо рд░рд╕реЛрдИ


рдЖрдЗрдП рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ JVM рд░рдирдЯрд╛рдЗрдо рдореЗрдореЛрд░реА рдкрд░:



рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрд╡реАрдПрдо рд╣рдорд╛рд░реА рд░рд╕реЛрдИ рд╣реИред рдЕрдЧрд▓рд╛, рд╢реЗрд╖ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рд╡рд┐рдзрд┐ рдХреНрд╖реЗрддреНрд░ - рдХреБрдХрдмреБрдХ



рд╡рд┐рдзрд┐ рдХреНрд╖реЗрддреНрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдереНрд░реЗрдб рдлрд╝рдВрдХреНрд╢рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдкрд╛рдХ рдиреБрд╕реНрдЦрд╛ рдкреБрд╕реНрддрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рддрд▓реЗ рд╣реБрдП рдЕрдВрдбреЗ рд╕реЗ рд▓реЗрдХрд░ рдХреИрдЯрд▓рди рдЬрд╛рд░реНрдЬреБрдПрд▓рд╛ рддрдХ рд╕рдм рдХреБрдЫ рдкрдХрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдереНрд░реЗрдб 1. рдПрди - рдЯреАрдо рдХреБрдХ



рдзрд╛рд░рд╛рдПрдБ рдЙрдирдХреЗ (рд╡рд┐рдзрд┐ рдХреНрд╖реЗрддреНрд░) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд╛рд▓рди рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдкрд╛рд╕ рдкреАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рдЬреЗрд╡реАрдПрдо рд╕реНрдЯреИрдХ рд╣реИред рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░реАрдо рдХреА рддреБрд▓рдирд╛ рдХреБрдХ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрд╕реЗ рджрд┐рдП рдЧрдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдХрд░рддрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдм рдХреА рд░реЗрд╕рд┐рдкреА рд╕реЗред

рдкреАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ - рдлреАрд▓реНрдб рдиреЛрдЯреНрд╕



рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рдЙрдВрдЯрд░ рд░рдЬрд┐рд╕реНрдЯрд░ - рд╣рдорд╛рд░реА рдзрд╛рд░рд╛ рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдХрд╛рдЙрдВрдЯрд░ред рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкрддрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рд░рд╕реЛрдИ рдореЗрдВ, рдпреЗ рдХреБрдЫ рдиреЛрдЯ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЕрдм рд╣рдо рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдм рдХреЗ рдХрд┐рд╕ рдкреГрд╖реНрда рдкрд░ рд╣реИрдВред

Jvm рд╕реНрдЯреИрдХ


рдлреНрд░реЗрдо рдХрд╛ рдвреЗрд░ред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдо рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдб рдЪрд░ рдФрд░ рдСрдкрд░реЗрдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЕрдЪрд╛рд░ рдХреА рддреИрдпрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдиреЗрд╕реНрдЯреЗрдб рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

-> -> -> ...

рдлреНрд░реЗрдо - рдбреЗрд╕реНрдХрдЯреЙрдк



рдлрд╝реНрд░реЗрдо рдХреБрдХ рдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдПрдХ рдХрдЯрд┐рдВрдЧ рдмреЛрд░реНрдб рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЗ рд╣реИрдВред

рд╕реНрдерд╛рдиреАрдп рдЪрд░ - рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрдВрдЯреЗрдирд░



рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдЪрд░ (рд╕реНрдерд╛рдиреАрдп рдЪрд░ рддрд╛рд▓рд┐рдХрд╛) рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ, рдкреНрд░рдХрд╛рд░ рдФрд░ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдкреЗрд╢реЗрд╡рд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ - рдХрдЯрд┐рдВрдЧ рдмреЛрд░реНрдб



рдЬреЗрд╡реАрдПрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдВрдб рд╕реНрдЯреИрдХ рд╕реНрдЯреЛрд░ рддрд░реНрдХред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди, рдвреЗрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн, рдЖрджрд┐

ред рдирд┐рдХрдЯрддрдо рдЙрджрд╛рд╣рд░рдг рдореИрдВ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдПрдХ рдХрдЯрд┐рдВрдЧ рдмреЛрд░реНрдб рд╣реИ рдЬрд┐рд╕ рдкрд░ рдПрдХ рдЯрдорд╛рдЯрд░ рдФрд░ рдХрдХрдбрд╝реА рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рд╕рд▓рд╛рдж рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдо рдмреЛрд░реНрдб рдкрд░ рдХреЗрд╡рд▓ рд╡рд╣реА рдбрд╛рд▓рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдЕрдЧрд▓реЗ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗред

рдвреЗрд░ - рд╡рд┐рддрд░рдг рддрд╛рд▓рд┐рдХрд╛



рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ; рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдлреНрд░реЗрдо рдХреЗрд╡рд▓ рдПрдХ рдзрд╛рдЧреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЪрд░ "рд▓рд╛рдЗрд╡" рд╣реИ рдЬрдмрдХрд┐ рдлреНрд░реЗрдо рдЬреАрд╡рд┐рдд рд╣реИ (рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдФрд░ рдвреЗрд░ рдЕрдиреНрдп рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реИ, рдФрд░ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рддрдХ рд░рд╣рддрд╛ рд╣реИред рд░рд╕реЛрдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рд╕реЗ, рд╣рдо рдПрдХ рд╡рд┐рддрд░рдг рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдХреЗрд▓реЗ рдЖрдо рд╣реИред рдФрд░ рдЗрд╕реЗ рдХреНрд▓реАрдирд░ рдХреА рдПрдХ рдЕрд▓рдЧ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬреЗрд╡реАрдПрдо рд░рд╕реЛрдИред рдЕрдВрджрд░ рд╕реЗ рдПрдХ рдирдЬрд╝рд░ред рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдЪрд▓реЛ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ warmUp:

    /**
     *   
     *  @param duration -   
     */
    fun warmUp(duration: Int) {
        for (x in 1..duration)
            println("Warming...")
    }

рдЕрд╕рдВрддреБрд╖реНрдЯ рдмрд╛рдЗрдЯрдХреЛрдб рд╕рдорд╛рд░реЛрд╣:

  public final warmUp(I)V
    // annotable parameter count: 1 (visible)
    // annotable parameter count: 1 (invisible)
   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

рдлреНрд░реЗрдо рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди - рд╡рд░реНрдХрдкреНрд▓реЗрд╕ рдкреНрд░рд┐рдкрд░реЗрд╢рди


рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЗрд╡реАрдПрдо рд╕реНрдЯреИрдХ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдПрдХ рдлреНрд░реЗрдо рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд╕реНрдЯреИрдХ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдФрд░ рдУрдкреЗрд░рд╛ рд╕реНрдЯреИрдХ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛрддреА рд╣реИред

  1. рддрд╛рдХрд┐ рд╣рдо рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдЗрд╕ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди (рдХреЛрдб рдХрдореЗрдВрдЯ рдореЗрдВ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХреА рд╣реИ:

        MAXSTACK = 2 //    2*32bit
        MAXLOCALS = 6 //    6*32bit
    
  2. рд╣рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╕рд░рдгреА рдХреЗ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ:

        LOCALVARIABLE x I L2 L7 2 //  x  Int(I),      L2-L7   2
        LOCALVARIABLE this Lcom/company/Solenya; L0 L8 0
        LOCALVARIABLE duration I L0 L8 1
    
  3. рд╕рдорд╛рд░реЛрд╣ рдХреА рджрд▓реАрд▓ рдЬрдм рдлреНрд░реЗрдо рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреА рд╣реИ рддреЛ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЕрд╡рдзрд┐ рдорд╛рди рдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ 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 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рдиреА рдЙрдмрд╛рд▓рдиреЗ" рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкреЗрд╢реЗрд╡рд░ рдЕрдкрдиреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ:

  1. рдПрдХ рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдм (рд╡рд┐рдзрд┐ рдХреНрд╖реЗрддреНрд░) рдЦреЛрд▓рддрд╛ рд╣реИ;
  2. рдкрд╛рдиреА рдХреЛ рдХреИрд╕реЗ рдЙрдмрд╛рд▓рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдорд┐рд▓рддреЗ рд╣реИрдВ ( warmUp());
  3. рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдЕрд╕реНрдерд╛рдпреА рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд░реНрдо рдкреНрд▓реЗрдЯ (рдУрдкреЗрд░рд╛ рд╕реНрдЯреИрдХ) рдФрд░ рдХрдВрдЯреЗрдирд░ (рд╕реНрдерд╛рдиреАрдп рдЪрд░) рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд╛рд░реНрдпрд╕реНрдерд▓ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЬреЗрд╡реАрдПрдо рд░рд╕реЛрдИред рдЕрдВрджрд░ рд╕реЗ рдПрдХ рдирдЬрд╝рд░ред рд╣реАрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

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рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:


рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рдмрд╛рд░ (рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдПрдХ рдмрд╛рд░) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдорд╛рди ingredientsCount2 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдкреБрд░рд╛рдиреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ ingredientsCount, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо 1 (рд▓реЙрд╕реНрдЯ рдЕрдкрдбреЗрдЯ рд╕рдорд╕реНрдпрд╛) рд╣реИред

рд╕реНрдерд┐рддрд┐ рд╢реЗрдл рдХреА рдПрдХ рдЯреАрдо рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬреЛ рдбрд┐рд╢ рдореЗрдВ рдорд╕рд╛рд▓реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП:

  1. рдПрдХ рд╡рд┐рддрд░рдг рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдбрд┐рд╢ (рд╣реАрдк) рдирд┐рд╣рд┐рдд рд╣реИред
  2. рд░рд╕реЛрдИ рдореЗрдВ рджреЛ рд░рд╕реЛрдЗрдП рд╣реИрдВ (рдереНрд░реЗрдб * 2)ред
  3. рдкреНрд░рддреНрдпреЗрдХ рдХреБрдХ рдХреА рдЕрдкрдиреА рдХрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдБ рд╡реЗ рдорд╕рд╛рд▓реЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (JVM Stack * 2)ред
  4. рдХрд╛рд░реНрдп: рдбрд┐рд╢ рдореЗрдВ рдорд╕рд╛рд▓реЛрдВ рдХреЗ рджреЛ рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗрдВред
  5. рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдЯреЗрдмрд▓ рдкрд░ рдПрдХ рдХрд╛рдЧрдЬрд╝ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реЗ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рд╕ рдкрд░ рд╡реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ ( ingredientsCount)ред рдФрд░ рдорд╕рд╛рд▓реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
    • рдорд╕рд╛рд▓реЛрдВ рдХреА рддреИрдпрд╛рд░реА рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд░рд╕реЛрдЗрдП рдХреЛ рдХрд╛рдЧрдЬ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬреЛрдбрд╝реЗ рдЧрдП рдорд╕рд╛рд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ;
    • рдорд╕рд╛рд▓реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд░рд╕реЛрдЗрдпрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреА рд░рд╛рдп рдореЗрдВ, рдкрдХрд╡рд╛рди рдореЗрдВ рдорд╕рд╛рд▓реЗ рдбрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдПрдХ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ:

  1. рдХреБрдХ # 1 рдиреЗ рдкрдврд╝рд╛ рдХрд┐ рдорд╕рд╛рд▓реЗ рдХреЗ 3 рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред
  2. рдХреБрдХ # 2 рдиреЗ рдкрдврд╝рд╛ рдХрд┐ рдорд╕рд╛рд▓реЗ рдХреЗ 3 рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред
  3. рджреЛрдиреЛрдВ рдЕрдкрдиреЗ рдбреЗрд╕реНрдХ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдорд╕рд╛рд▓реЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
  4. рджреЛрдиреЛрдВ рд╢реЗрдл рдбрд┐рд╢ рдореЗрдВ рдорд╕рд╛рд▓реЗ (3 + 2) рдорд┐рд▓рд╛рддреЗ рд╣реИрдВред
  5. рдХреБрдХ # 1 рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдорд╕рд╛рд▓реЗ рдХреЗ 4 рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред
  6. рдХреБрдХ # 2 рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдорд╕рд╛рд▓реЛрдВ рдХреЗ 4 рд╕рд░реНрд╡рд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред

рдиреАрдЪреЗ рдкрдВрдХреНрддрд┐: рдЙрддреНрдкрд╛рдж рдЧрд╛рдпрдм рдереЗ, рдкрдХрд╡рд╛рди рдорд╕рд╛рд▓реЗрджрд╛рд░ рдирд┐рдХрд▓рд╛, рдЖрджрд┐ред

рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреИрд╕реЗ рддрд╛рд▓реЗ, рдзрд╛рдЧрд╛-рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░реНрдп, рдЖрджрд┐ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ


рдХрд┐рд╕реА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдмрд╛рдпрдЯреЗрдХреЛрдб рдореЗрдВ рдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрд╣реБрдд рдХрдо рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЙрд╕рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рди рд╣реЛред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЗ рдХрд╛рдо рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рдХреЗ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ рдлрд╛рдпрджреЗ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ, рдФрд░ рдкреЗрд╢реЗрд╡рд░ рд░реВрдк рд╕реЗ рдмрдврд╝рдиреЗ рдореЗрдВ рднреА рдорджрдж рдорд┐рд▓рддреА рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпреЗ рдЬреЗрд╡реАрдПрдо рдХреЗ рд╕рднреА рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рджреВрд░ рд╣реИрдВред рдХрдИ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк "рдЪреАрдЬреЗрдВ" рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рд░рдВрддрд░ рдкреВрд▓, рдмрд╛рдпрдЯреЗрдХреЛрдб рд╡реЗрд░рд┐рдлрд╛рдпрд░, рдЬреЗрдЖрдИрдЯреА, рдХреЛрдб рдХреИрд╢, рдЖрджрд┐ред рд▓реЗрдХрд┐рди рд▓реЗрдЦ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рдирд╣реАрдВ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЙрди рддрддреНрд╡реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред

рдЙрдкрдпреЛрдЧреА рдХрдбрд╝рд┐рдпрд╛рдБ:


All Articles