Wat is het verschil tussen System gc en Runtime gc in Java

De grootste verschil tussen System gc en Runtime gc in Java is dat System gc is een klassenmethode terwijl Runtime gc een instantiemethode is.

Java is een algemene programmeertaal op een hoog niveau. Het is robuust en veilig en biedt platformonafhankelijkheid en ondersteunt multi-threading. Bovendien maakt het objectgeoriënteerde programmering mogelijk. Daarom is het gemakkelijker om realistische scenario's te modelleren om applicaties te bouwen met behulp van Java. Een ander belangrijk voordeel van Java is dat het een garbage collector biedt, die ongebruikte objecten automatisch vernietigt voor een beter geheugenbeheer. Het runnen van de garbage collector is een automatisch proces, maar het is ook mogelijk om de JVM te vragen om de garbage collector te gebruiken. System gc en Runtime gc zijn twee van dergelijke methoden om JVM te vragen om Garbage collector uit te voeren.

Key Areas Covered

1. Wat is System gc in Java
     - Definitie, functionaliteit
2. Wat is Runtime gc in Java
     - Definitie, functionaliteit
3. Wat is de relatie tussen systeemgc en runtime-gc
     - Overzicht van vereniging
4. Wat is het verschil tussen System gc en Runtime gc
     - Vergelijking van belangrijke verschillen

Sleutelbegrippen

System gc, Runtime gc

Wat is System gc

In de systeemklasse is er een methode die gc () wordt genoemd. Het runt de vuilnisman. Deze methode roept de methode finalize () op om de objecten te vernietigen die niet worden gebruikt. In Java worden de objecten in de heap gemaakt.

Gewoonlijk roept de JVM de garbagecollector impliciet op. Het zal de garbage collector echter niet onnodig bellen. Stel dat er maar een paar objecten in de heap zijn. Dan zal JVM de garbage collector niet aanspreken. Het zal alleen de garbage collector aanroepen wanneer het heap-geheugen lager is.  

Figuur 1: JVM-architectuur

Neem bijvoorbeeld aan dat het nodig is om een ​​nieuw object te maken en dat er een laag geheugen in de heap zit. Eerst zal de garbage collector zoeken naar een object zonder referentie. Vervolgens wordt de finalisatiemethode aangeroepen. Vervolgens worden de toegewezen bronnen van dat object vrijgegeven en wordt het object vernietigd. Ten slotte zal JVM dat geheugen toewijzen aan het nieuw gemaakte object. Dit hele proces kost meer tijd. In plaats daarvan kan de programmeur de methode System.gc () aanroepen. Het is een verzoek aan de JVM om de vuilnisverzamelaar continu op de achtergrond uit te voeren.

Wat is Runtime gc

De taak van de Runtime-gc is hetzelfde als System gc. Het is een methode die de JVM vertelt om de garbage collector continu uit te voeren. In tegenstelling tot Runtime gc, een klassenmethode, is Runtime gc een instantiemethode. Een belangrijk probleem in System gc en Runtime gc is dat ze prestatieproblemen kunnen veroorzaken.

Relatie tussen System gc en Runtime gc

  • gc () belt intern Runtime.gc ().

Verschil tussen System gc en Runtime gc

Definitie

System gc is een klassenmethode die de Java Virtual Machine (JVM) voorstelt om de garbage collector uit te voeren om geheugen te verkrijgen van ongebruikte objecten om geheugen te maken voor huidige objecten. Runtime gc is een instantiemethode die de Java Virtual Machine (JVM) voorstelt om de garbage collector te gebruiken om geheugen te verkrijgen van de ongebruikte objecten om geheugen te maken voor huidige objecten. 

Basis

Daarom is het belangrijkste verschil tussen System gc en Runtime gc dat het systeem gc een klassemethode is terwijl runtime gc een instantiemethode is.

Type

Een ander verschil tussen System gc en Runtime gc is dat systeem gc een niet-native methode is, terwijl runtime gc een native methode is.

Verklaring

Declaration for java.lang.System.gc () methode is public static void gc ()

Declaration for java.lang.Runtime.gc () methode is public void gc ()

Conclusie

Garbage collector geeft het heap-geheugen vrij door de onbereikbare objecten te vernietigen. System gc en Runtime gc zijn twee methoden om een ​​verzoek aan JVM uit te voeren om Garbage collector uit te voeren. Het basisverschil tussen System gc en Runtime gc in Java is dat System gc een klassemethode is, terwijl Runtime gc een instantiemethode is. Meestal is System gc handiger dan Runtime gc.

Referentie:

1. Wat is het gebruik van System.gc ()? | Core Java Interview Questions, Naresh i Technologies, 1 maart 2017, hier beschikbaar.
2. "Java.lang.System.gc () Methodevoorbeeld." Www.tutorialspoint.com, hier beschikbaar.
3. "Java.lang.Runtime.gc () Methodevoorbeeld." Www.tutorialspoint.com, hier beschikbaar.
4. "Garbage Collection in Java." GeeksforGeeks, 7 september 2018, hier beschikbaar.

Afbeelding met dank aan:

1. "Java virtual machine architecture" door Dcoetzee (Bestand: Computer-blue.svg door OpenClipart, Bestand: Phone-blackberry-bold.svg door User: Techtoucian) - Eigen werk (CC0) via Commons Wikimedia