Šī mēneša Zem kapuces koncentrējas uz metožu izsaukšanu un atgriešanos Java virtuālajā mašīnā (JVM). Tajā aprakstīti četri veidi, kā var izmantot Java (un vietējās) metodes, sniegts koda paraugs, kas ilustrē četrus veidus un aptver attiecīgos baitkodus.
Metodes izsaukšana
Java programmēšanas valoda nodrošina divus pamatmetožu veidus: gadījumu metodes un klases (vai statiskās) metodes. Atšķirība starp šiem diviem metožu veidiem ir:
Instance
Metodes prasa instanci, pirms tās var izmantotklasē
metodes nav.Instance
metodes izmanto dinamisku (vēlu) saistīšanu, turpretīklasē
metodes izmanto statisko (agrīno) saistīšanu.
Kad Java virtuālā mašīna izsauc klases metodi, tā izvēlas metodi, kuru izsaukt, pamatojoties uz objekta atsauces tipu, kas vienmēr ir zināms sastādīšanas laikā. No otras puses, kad virtuālā mašīna izsauc instances metodi, tā izvēlas izsaukšanas metodi, pamatojoties uz faktisko objekta klasi, kas var būt zināma tikai izpildes laikā.
JVM izmanto divas dažādas instrukcijas, kas parādītas šajā tabulā, lai izmantotu šīs divas dažādas metodes: invokevirtuāls priekš instancē
metodes un invokestātisks priekš klasē
metodes.