Šio mėnesio Po gaubtu daugiausia dėmesio skiriama metodo iškvietimui ir grįžimui į „Java“ virtualiąją mašiną (JVM). Jame aprašomi keturi „Java“ (ir vietinių) metodų panaudojimo būdai, pateikiamas kodo pavyzdys, kuris iliustruoja keturis būdus ir aprėpia atitinkamus baitekodus.
Metodo iškvietimas
„Java“ programavimo kalba pateikiami du pagrindiniai metodų tipai: egzempliorių metodai ir klasės (arba statiniai) metodai. Skirtumas tarp šių dviejų rūšių yra:
Instancija
metodai reikalauja egzemplioriaus, kad juos būtų galima naudoti, oklasė
metodai to nedaro.Instancija
metodai naudoja dinaminį (vėlyvąjį) įrišimą, oklasė
metodai naudoja statinį (ankstyvąjį) įrišimą.
Kai „Java“ virtuali mašina iškviečia klasės metodą, ji pasirenka metodą, kurį reikia iškviesti, remdamasi objekto nuorodos tipu, kuris visada žinomas kompiliavimo metu. Kita vertus, kai virtualioji mašina iškviečia egzempliorių metodą, ji parenka iškviečiamą metodą remdamasi tikra objekto klase, kuri gali būti žinoma tik vykdymo metu.
JVM naudoja dvi skirtingas instrukcijas, pateiktas šioje lentelėje, norėdamas pasinaudoti šiais dviem skirtingais metodais: invokevirtualus dėl instancija
metodai ir invokestatic dėl klasė
metodai.