ei-staattisen?
onko staattisen metodin kutsu
3
388
Vastaukset
- tällänen
"As their name implies, instance methods execute instantly, while static methods..." :)
- void static
Staattinen metodi on nopeampi koska siinä metodille ei tarvitse välittää this-parametria.
- kumpi&kampi
Ei näytä olevan käytännön eroa. Kokeilin alla olevalla ohjelmalla (joka laskee kuinka monta kutsua minuutin aikana ehditään kutsua). Vaihtelemalla kasvata -metodia staattiseksi ja ei staattiseksi, niin samanlaisia arvoja ohjelma käytännössä antoi riippumatta metodin tyypistä.
--- ALKAA ---
public class Laskuri extends Thread {
long arvo;
boolean loppu;
public static void kasvata(Laskuri laskuri) {
laskuri.arvo ;
}
public void run() {
while(!loppu) kasvata(this);
}
public static void main(String[] args) throws InterruptedException {
Laskuri laskuri = new Laskuri();
laskuri.start();
Thread.sleep(1000*60);
laskuri.loppu = true;
System.out.println("Laskuri pääsi arvoon: " laskuri.arvo);
}
}
--- LOPPUU ---
Tavuu koodissa javap näyttää seuraavaa eroa:
--- ALKAA: EI-STAATTINEN ---
public void kasvata(Laskuri);
Code:
0: aload_1
1: dup
2: getfield #20; //Field arvo:J
5: lconst_1
6: ladd
7: putfield #20; //Field arvo:J
10: return
public void run();
Code:
0: goto 8
3: aload_0
4: aload_0
5: invokevirtual #24; //Method kasvata:(LLaskuri;)V
8: aload_0
9: getfield #26; //Field loppu:Z
12: ifeq 3
15: return
--- LOPPUU ---
--- ALKAA: STAATTINEN ---
public static void kasvata(Laskuri);
Code:
0: aload_0
1: dup
2: getfield #20; //Field arvo:J
5: lconst_1
6: ladd
7: putfield #20; //Field arvo:J
10: return
public void run();
Code:
0: goto 7
3: aload_0
4: invokestatic #24; //Method kasvata:(LLaskuri;)V
7: aload_0
8: getfield #26; //Field loppu:Z
11: ifeq 3
14: return
--- LOPPUU ---
Kuten joku jo totesi, niin ei-staattisessa metodissa pinoon laitetaan hieman enemmän tavaraa, mikä näkyy tuossa tavukoodissakin rivinä: "4: aload_0". Tuo yksi koodirivi kasvattaa suoritettavan koodin määrää n. 7 %:lla, mutta siltikään se ei näytä tulosten valossa vaikutavan nopeuteen. Kaikkihan riippuu loppujen lopuksi siitä, miten Java virtuaalikone kone on tehty, eli miten se suorittaa tuota koodia.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Porvarimediat paniikissa demareiden huiman kannatuksen vuoksi
Piti sitten keksiä "nimettömiin lähteisiin" perustuen taas joku satu. Ovat kyllä noloja, ja unohtivat sen, että vaalit1428077KATASTROFI - Tytti Tuppurainen itse yksi pahimmista kiusaajista!!!
STT:n lähteiden mukaan SDP:n eduskuntaryhmän puheenjohtaja Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti4237121Mikä siinä on ettei persuille leikkaukset käy?
On esitetty leikkauksia mm. haitallisiin maataloustukiin, kuin myös muihin yritystukiin. Säästöjä saataisiin lisäksi lei693643Lääppijä Lindtman jäi kiinni itse teosta
Lindtman kyselemättä ja epäasiallisesti koskettelee viestintäpäällikköä. https://www.is.fi/politiikka/art-20000117808521403280Juuri nyt! Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti
Ai että mä nautin, Tytti erot vireille! "Käytös on kohdistunut avustajia ja toisia kansanedustajia kohtaan, uutisoi STT1092804Huomaatteko Demari Tytti ei esitä pahoitteluitaan
Samanlainen ilmeisesti kuin Marin eli Uhriutuu no he ovat Demareita ja muiden yläpuolella siis omasta mielestään442338- 1261926
Puolen vuoden koeaika
Voisi toimia meillä. Ensin pitäis selvittää "vaatimukset" puolin ja toisin, ennen kuin mitään aloittaa. Ja matalalla pro231793Turvaan tulleet lähettävät omia lapsiaan vaaraan - hullua
MOT-ohjelman jakso ”Loma vaihtui kahleisiin” kertoi, kuinka Suomessa ja muualla Euroopassa asuvat somaliperheet lähettäv261566Tytti Tuppurainen nöyryyttää avustajiaan
Tytti Tuppurainen nöyryyttää SDP:n eduskuntaryhmän kokouksissa sekä avustajia että kansanedustajia. Hän nolaa ihmisiä ju1821457