Mentre treballava classes a Java , s'utilitzen constructors per inicialitzar la instància d'una classe. La memòria s'assigna per a l'objecte mitjançant el fitxer constructor però després que el cicle de vida de l’objecte s’acabi i l’objecte ja no s’utilitzi, s’ha de repartir i alliberar la memòria. Aquí és on destructor surt a la imatge. En aquest article, aprendrem sobre destructors a Java, en l’ordre següent:
Què és un destructor?
Un destructor és un especial que es crida automàticament tan bon punt s'acaba el cicle de vida d'un objecte. Un destructor està cridat a desallotjar i alliberar memòria. Les tasques següents s'executen quan es crida un destructor.
- Alliberament dels panys de llançament
- Tancant totes les connexions o fitxers de la base de dades
- Alliberant tots els recursos de la xarxa
- Altres tasques de neteja
- Recuperació de l’espai de muntatge assignat durant la vida d’un objecte
Els destructors a Java també coneguts com a finalitzadors no són deterministes. L 'assignació i alliberament de memòria són implícitament gestionats per recollidor d'escombraries a Java .
com sortir del programa a Java
Els finalitzadors a Java s’han d’invocar implícitament, ja que la seva invocació no està garantida, a diferència dels finalitzadors C # que s’invocen durant el temps d’execució .NET.
Vegem les propietats clau d’un destructor:
- No es permet la sobrecàrrega ni l'herència
- Cap especificació de modificadors o paràmetres d'accés
- Invocació automàtica i cap trucada explícita de l'usuari
- S’utilitza a les classes però no a les estructures
- L'ordre de la classe varia de la classe més derivada a la classe menys derivada
- També es diu quan la instància objecte ja no és apta per accedir-hi
- S’utilitza per alliberar recursos no gestionats en lloc de recursos gestionats en mans de l’objecte
Abocador
Un recollidor d 'escombraries és un programa que s'executa a Màquina virtual Java per recuperar la memòria suprimint els objectes que ja no s’utilitzen o que han finalitzat el seu cicle de vida. Es diu que un objecte és apte per a la recollida d’escombraries si i només si l’objecte no s’hi pot arribar.
Intentem entendre com funciona la recollida d'escombraries a Java:
La recollida d’escombraries és principalment el procés de marcar o identificar els objectes inaccessibles i eliminar-los per alliberar la memòria. La implementació viu a la JVM, l’únic requisit és que compleixi les especificacions de la JVM. Aquests són els diferents tipus de recollidors d’escombraries a Java:
- Recollidor de deixalles en sèrie
- Recollidor de deixalles paral·lel / de rendiment
- Col·leccionista CMS
- Col·leccionista G1
Vegem alguns avantatges de la recollida d’escombraries a Java:
- Esborra automàticament els objectes no utilitzats que no s’hi poden arribar per alliberar la memòria
- La recollida d’escombraries fa que la memòria Java sigui eficient
- No cal que es cridi explícitament ja que la implementació viu a la JVM
- La recollida d’escombraries s’ha convertit en un component important i estàndard de molts llenguatges de programació
Intentem entendre per què els destructors no s’utilitzen a Java.
com ordenar una matriu en ordre ascendent c ++
Constructor vs Destructor: diferència entre un constructor i un destructor
constructor | destructor |
Un constructor s'utilitza per inicialitzar una instància d'una classe | Un destructor s’utilitza per eliminar o destruir els objectes quan ja no s’utilitzen |
Els constructors s’anomenen quan es crea una instància d’una classe | Els destructors es diuen quan un objecte és destruït o alliberat |
Assignació de memòria | Allibera la memòria |
És possible una sobrecàrrega | No es permet la sobrecàrrega |
Se'ls permet tenir arguments | No es poden passar arguments en un destructor |
Mètode Java Finalize ()
Es fa força difícil per a qualsevol desenvolupador forçar l'execució d'un col·lector d'escombraries, però hi ha una alternativa a això. Podem utilitzar l’objecte. finalitzar () mètode que funciona exactament com un destructor a Java.
diferència entre interfície i classe a Java
Un mètode Object.finalize () s'hereta en tots Objectes Java . No és un destructor, sinó que s'utilitza per assegurar o proporcionar seguretat addicional per garantir l'ús de recursos externs, com ara tancar el fitxer, etc. abans que el programa s'apagui. Podeu trucar-lo mitjançant el mètode mateix o system.runFinalizersOnExit (true).
No es recomana l’ús del mètode finalize () ja que pot ser molt insegur i, en alguns casos, utilitzar-se incorrectament.
Prenem un exemple senzill per mostrar com finalize () es pot utilitzar per trucar al col·lector de deixalles.
classe pública A {public void finalize () throws Throwable {System.out.println ('L'objecte és destruït pel recol·lector de deixalles')} public static void principal (String [] args) {A test = new A () test = null System.gc ()}}
Això ens porta al final d’aquest article, on hem après sobre el Destructor a Java. Espero que tingueu clar tot el que us ha estat compartit en aquest tutorial.
Si heu trobat rellevant aquest article sobre 'Destructor In Java', consulteu el document 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 cada pas del vostre viatge i oferir un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per conceptes bàsics com avançats de Java juntament amb diversos M'agrada Hibernar & .
Si teniu alguna pregunta, no dubteu a fer-vos totes les vostres preguntes a la secció de comentaris de 'Destructor In Java' i el nostre equip estarà encantat de respondre-us.