Tento mesiac Pod kapotou sa zameriava na vyvolanie metódy a návrat do virtuálneho stroja Java (JVM). Opisuje štyri spôsoby, ako je možné vyvolať metódy Java (a natívne), poskytuje ukážku kódu, ktorá ilustruje tieto štyri spôsoby, a pokrýva príslušné bajtkódy.
Vyvolanie metódy
Programovací jazyk Java poskytuje dva základné druhy metód: inštančné metódy a triedne (alebo statické) metódy. Rozdiel medzi týmito dvoma druhmi metód je:
Inštancia
metódy vyžadujú inštanciu predtým, ako ich možno vyvolať, zatiaľ čotrieda
metódy nie.Inštancia
metódy používajú dynamické (neskoré) viazanie, zatiaľ čotrieda
metódy používajú statické (skoré) viazanie.
Keď virtuálny stroj Java vyvolá metódu triedy, vyberie metódu, ktorá sa má vyvolať, na základe typu odkazu na objekt, ktorý je vždy známy v čase kompilácie. Na druhej strane, keď virtuálny stroj vyvolá inštančnú metódu, vyberie metódu na vyvolanie na základe skutočnej triedy objektu, ktorá môže byť známa iba za behu programu.
Spoločný podnik JVM používa na vyvolanie týchto dvoch rôznych druhov metód dva rôzne pokyny uvedené v nasledujúcej tabuľke: invokevirtual pre inštancia
metódy a invokestatický pre trieda
metódy.