Care este diferența dintre sistemul gc și Runtime gc în Java

principala diferență între sistemul gc și Runtime gc în Java este asta Sistemul gc este o metodă de clasă în timp ce Runtime gc este o metodă instanță.

Java este un limbaj de programare de nivel înalt. Este robustă și sigură și oferă independență platformă și suportă multi-filetare. În plus, permite programarea orientată pe obiecte. Prin urmare, este mai ușor să modelezi scenarii din lumea reală pentru a construi aplicații folosind Java. Un alt avantaj important al Java este că oferă un colector de gunoi, care distruge automat obiectele neutilizate pentru a oferi o gestionare mai bună a memoriei. Rularea colectorului de gunoi este un proces automat, dar este posibil, de asemenea, să solicitați JVM să ruleze colectorul de gunoi. Sistemul gc și Runtime gc sunt două astfel de metode pentru a solicita JVM să ruleze colectorul de gunoi.

Domenii cheie acoperite

1. Ce este sistemul gc în Java
     - Definiție, funcționalitate
2. Ce este Runtime gc în Java
     - Definiție, funcționalitate
3. Care este relația dintre sistemul gc și Runtime gc
     - Schița Asociației
4. Care este diferența dintre sistemul gc și Runtime gc
     - Compararea diferențelor cheie

Termeni cheie

Sistemul gc, Runtime gc

Ce este sistemul gc

În clasa de sistem, există o metodă numită gc (). Rulează colectorul de gunoi. Această metodă invocă metoda finalize () pentru a distruge obiectele care nu sunt folosite. În Java, obiectele sunt create în heap.

De obicei, JVM numește implicit colectorul de gunoi. Cu toate acestea, nu va numi colectorul de gunoi în mod inutil. Să presupunem că există doar câteva obiecte în heap. Apoi, JVM nu va invoca colectorul de gunoi. Se va invoca colectorul de gunoi numai când memoria heap este mai mică.  

Figura 1: Arhitectura JVM

De exemplu, presupuneți că este necesar să creați un obiect nou și că există o memorie scăzută în heap. În primul rând, colectorul de gunoi va căuta un obiect nereferențiat. Apoi, va invoca metoda finalizării. Apoi, va elibera resursele alocate acestui obiect și va distruge obiectul. În cele din urmă, JVM va aloca această memorie obiectului nou creat. Acest întreg proces durează mai mult timp. În schimb, programatorul poate apela metoda System.gc (). Este o solicitare adresată JVM de a rula colectorul de gunoi continuu în fundal.

Ce este Runtime gc

Sarcina Runtime gc este aceeași ca și System gc. Este o metodă care îi spune JVM să execute continuu colectorul de gunoi. Spre deosebire de Runtime gc, care este o metodă de clasă, Runtime gc este o metodă instanță. O problemă majoră în sistemul gc și Runtime gc este că acestea pot provoca probleme de performanță.

Relația dintre sistemul gc și Runtime gc

  • gc () solicită intern Runtime.gc ().

Diferența dintre sistemul gc și timpul de execuție gc

Definiție

Sistemul gc este o metodă de clasă care sugerează ca Java Virtual Machine (JVM) să ruleze colectorul de gunoi pentru a obține memorie din obiectele neutilizate pentru a face memorie pentru obiectele curente. Runtime gc este o metodă de instanță care sugerează ca Java Virtual Machine (JVM) să ruleze colectorul de gunoi pentru a obține memorie din obiectele neutilizate pentru a face memorie pentru obiectele curente. 

Bază

Prin urmare, principala diferență dintre sistemul gc și Runtime gc este că sistemul gc este o metodă de clasă, în timp ce timpul de execuție gc este o metodă de instanță.

Tip

O altă diferență între sistemul gc și Runtime gc este că sistemul gc este o metodă non-nativă în timp ce runtime gc este o metodă nativă.

Declaraţie

Declarația pentru metoda java.lang.System.gc () este public static void gc ()

Declarația pentru metoda java.lang.Runtime.gc () este void public gc ()

Concluzie

Colectorul de gunoi eliberează memoria heapului prin distrugerea obiectelor nedorite. Sistemul gc și Runtime gc sunt două metode pentru a solicita JVM să ruleze colectorul de gunoi. Diferența de bază dintre sistemul gc și Runtime gc în Java este că sistemul gc este o metodă de clasă în timp ce Runtime gc este o metodă instanță. De obicei, sistemul gc este mai convenabil decât Runtime gc.

Referinţă:

1. Ce este utilizarea System.gc ()? | Core Întrebări Interviu Java, Naresh i Technologies, 1 Mar. 2017, Disponibil aici.
2. "Java.lang.System.gc () Exemplu de metodă" Www.tutorialspoint.com, disponibil aici.
3. "Java.lang.Runtime.gc () Exemplu de metodă" Www.tutorialspoint.com, disponibil aici.
4. "Colecția de gunoi în Java". GeeksforGeeks, 7 septembrie 2018, disponibil aici.

Datorită fotografiei:

1. "Arhitectura mașinii virtuale Java" De la Dcoetzee (fișier: Computer-blue.svg de OpenClipart, File: Phone-blackberry-bold.svg de utilizator: Techtoucian)