Recollida d'escombraries a Java: Tot el que necessiteu saber

Aquest article sobre la recollida d'escombraries a Java us proporciona una idea clara sobre com funciona, els seus tipus i diferents mètodes a la recollida d'escombraries a Java.

és un llenguatge de programació per a usos generals i si teniu en compte que hi ha dades inutilitzades al vostre programa i no sabeu com gestionar-les, Garbage Collection a Java us serà útil. Per tant, escric aquest article per ajudar-vos a gestionar aquestes funcions.



Tractaré els temes en el següent ordre:



Comencem!

Què és la col·lecció de deixalles a Java?

A Java, els programadors s'enfronten al problema d 'haver de destruir el fitxer objectes que estan fora d’ús. Però amb el col·lector de deixalles, això es pot fer fàcilment. L’objectiu principal d’aquest col·lector de deixalles és alliberar memòria acumulativa destruint els objectes que no contenen cap referència. La tècnica es coneix com Recollida d'escombraries.



També es considera un programa que ajuda a realitzar una gestió automàtica de la memòria. Quan s’executen a la JVM, es creen objectes al munt, que en realitat és una part de memòria dedicada al programa. Finalment, alguns objectes ja no seran necessaris. El abocador troba aquests objectes no utilitzats i els elimina per alliberar una mica de memòria.

  • Els programes que no desassignen memòria poden acabar trencant-se quan no quedi memòria al sistema per assignar. Es diu que tots aquests programes tenen fuites de memòria.
  • La recollida d’escombraries a Java es produeix automàticament durant la vida d’un programa, eliminant la necessitat de desassignar memòria i, per tant, evitant les fuites de memòria.
  • Mètodes com gratis () en Do i delete () a C ++ s’utilitzen però, a Java, es realitza automàticament. Tan, proporciona una millor gestió de la memòria.

Ara, entenem com funciona aquesta recollida automàtica d’escombraries a Java.

Nota : Es diu que un objecte és apte per a la recollida d’escombraries si no s’hi pot arribar.



Java crea matriu d'objectes

Com funciona la recollida d'escombraries?

Garbage Collection és un procés de treball amb la memòria Heap i també senyal o bé identifiqueu els objectes inabastables i destruïu-los amb compactació.

La recollida d’escombraries a Java és un procés automàtic i el programador no ha de marcar explícitament els objectes que s’han d’eliminar. La implementació viu principalment al . Cada JVM pot implementar la recollida d’escombraries. L'únic requisit és que compleixi les especificacions JVM.

Tot i que hi ha moltes JVM disponibles, D’Oracle HotSpot és, amb diferència, el més comú, ja que ofereix un conjunt robust i madur d’opcions de recollida d’escombraries.

  • L’HotSpot té diversos recol·lectors d’escombraries que s’optimitzen per a diversos casos d’ús i tots els recol·lectors d’escombraries segueixen el mateix procés bàsic.
  • En el primer pas, objectes sense referència s’identifiquen i es marquen com a preparats per a la recollida d’escombraries.
  • Al segon pas, se suprimiran els objectes marcats. Opcionalment, la memòria es pot compactar després que el recollidor d'escombraries elimini objectes, de manera que els objectes restants es troben en un bloc contigu a l'inici del munt. El procés de compactació facilita l'assignació de memòria a objectes nous seqüencialment després del bloc de memòria assignat a objectes existents.

Tots els recollidors d’escombraries d’HotSpot implementen una estratègia de recollida generacional que classifica els objectes per edats. El motiu darrere de la recollida d'escombraries generacional és que la majoria dels objectes tenen una vida curta i estaran preparats per a la recollida d'escombraries poc després de la seva creació.

com escanejar un caràcter a Java

Ara vegem quins són els diferents tipus de recollidors d’escombraries.

Tipus de recollidor d’escombraries

La JVM proporciona quatre recollidors d'escombraries diferents, tots ells generacionals. Cadascun té els seus propis avantatges i limitacions. L’elecció de quin recol·lector d’escombraries s’ha d’utilitzar correspon a l’usuari i pot haver-hi nombroses diferències en el rendiment i en les pauses de l’aplicació.

Hi ha quatre tipus de recollidors d’escombraries.

  • Recollidor de deixalles en sèrie (GC) :Tots els esdeveniments de recollida d'escombraries es realitzen en sèrie en un sol fil. La compactació s’executa després de cada recollida d’escombraries.
  • GC paral·lel / de rendiment: S'utilitzen diversos fils per a la recollida d'escombraries menors / petits. S’utilitza un únic fil per a la recollida d’escombraries importants i per a la compactació de la generació antiga. A més, la variant Paral·lel utilitza múltiples fils per a la recollida d’escombraries importants i la compactació de la generació antiga.
  • Col·leccionista CMS :S'utilitzen diversos fils per a la recollida d'escombraries petites / menors mitjançant el mateix algorisme que Parallel. La majoria de la recollida d'escombraries té diversos fils, però CMS s'executa simultàniament juntament amb els processos d'aplicació per minimitzar els esdeveniments de l'aplicació. No es realitza compactació.
  • Col·leccionista G1 :Aquest col·lector d’escombraries està pensat bàsicament per substituir CMS. És paral·lel i simultani com CMS, però funciona de manera molt diferent quan es compara amb els recol·lectors d’escombraries més antics.

Comprenem els avantatges de la recollida d’escombraries a Java.

Avantatges

  • El major avantatge de la recollida d'escombraries de Java és que es fa automàticament gestiona la supressió d'objectes no utilitzats o d'alguns objectes inaccessibles per alliberar recursos de memòria.
  • Garbage Collection és ara un nou component estàndard de molts llenguatges de programació populars.
  • Fa que la memòria Java sigui eficient. Es deu al fet que el recollidor d'escombraries elimina els objectes no referenciats de la memòria acumulativa.
  • És fet automàticament pel recollidor d'escombraries que forma part de JVM.

Millors pràctiques

El millor enfocament per adaptar-se a la recollida d’escombraries de Java és establir senyalitzadors a la JVM. Les marques poden ajustar el recollidor d’escombraries que s’utilitzarà. Ajuda a fer-lo el més adequat per al processament de backend, on són acceptables pauses llargues per a la recollida d’escombraries.

Una altra cosa que cal tenir en compte aquí és que el col·lector d’escombraries CMS està dissenyat per minimitzar les pauses, cosa que el fa ideal per a aplicacions GUI on la capacitat de resposta és molt important. Es pot aconseguir una posada a punt addicional canviant la mida del munt o de les seves seccions i mesurant l’eficiència de la recollida d’escombraries.

Fem una ullada a aquest programa.

classe Edureka {int a int b public void setData (int c, int d) {a = cb = d} public void showData () {System.out.println ('Valor de a =' + a) System.out.println ('Value of b =' + b)} public static void main (String args []) {Edureka e1 = new Edureka () Edureka e2 = new Edureka () e1.setData (1,2) e2.setData (3, 4) e1.showData () e2.showData () // Edureka e3 // e3 = e2 //e3.showData () // e2 = nul //e3.showData () // e3 = nul //e3.showData ()}}

En aquest cas, els doses creen objectes i dues variables de referència. Si afegiu una altra ordre e3 = Nul,dues variables de referència apuntaran al mateix objecte. I si no hi ha cap referència a la variable, e3 = e2e3.showData () En aquest moment, no hi ha referències que apuntin a l'objecte i esdevingui elegible per a la recollida d'escombraries.

Això ens porta al final d’aquest article sobre “Recollida d’escombraries a Java”. Hem après a eliminar els objectes no utilitzats del munt i els diferents tipus de col·lecció.

què és l'agregació a Java

Si heu trobat aquest article sobre 'Recollida d'escombraries a Java', consulteu el document per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. Estem aquí per ajudar-vos en tots els passos del vostre viatge, oferim un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest “Recollida d’escombraries a Java ' i ens posarem en contacte amb vostè el més aviat possible.