Ohjelmointi

Kuinka Java-virtuaalikone käsittelee menetelmän kutsun ja paluun

Tämän kuukauden Konepellin alle keskittyy menetelmän kutsumiseen ja paluuseen Java-virtuaalikoneen (JVM) sisällä. Siinä kuvataan neljä tapaa, joilla Java (ja alkuperäiset) -menetelmät voidaan käyttää, annetaan koodinäyte, joka havainnollistaa näitä neljää tapaa ja kattaa asiaankuuluvat tavukoodit.

Menetelmän kutsuminen

Java-ohjelmointikieli tarjoaa kaksi perustyyppiä: esimerkkimenetelmät ja luokan (tai staattiset) menetelmät. Ero näiden kahden menetelmän välillä on:

  1. Ilmentymä menetelmät edellyttävät instanssia ennen kuin niihin voidaan vedota, kun taas luokassa menetelmät eivät.
  2. Ilmentymä menetelmissä käytetään dynaamista (myöhäistä) sitomista, kun taas luokassa menetelmissä käytetään staattista (varhaista) sitoutumista.

Kun Java-virtuaalikone kutsuu luokan menetelmän, se valitsee kutsuttavan menetelmän objektiviittauksen tyypin perusteella, joka tunnetaan aina käännösaikana. Toisaalta, kun virtuaalikone kutsuu ilmentymämenetelmää, se valitsee kutsuttavan menetelmän objektin todellisen luokan perusteella, joka voi olla tiedossa vain ajon aikana.

JVM käyttää kahta erilaista oheista, jotka on esitetty seuraavassa taulukossa, näiden kahden erilaisen menetelmän käyttämiseksi: invokevirtuaali varten ilmentymä menetelmät ja invokestaattinen varten luokassa menetelmiä.

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