Programovanie

Ako virtuálny stroj Java spracováva vyvolanie a vrátenie metódy

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:

  1. Inštancia metódy vyžadujú inštanciu predtým, ako ich možno vyvolať, zatiaľ čo trieda metódy nie.
  2. Inštancia metódy používajú dynamické (neskoré) viazanie, zatiaľ čo trieda 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.

$config[zx-auto] not found$config[zx-overlay] not found