"Hallo Amigo!"

'Hé, Ellie. Heb je me iets interessants te vertellen?'

"Vandaag zullen we het hebben over hoe lang een object in het geheugen blijft, ook wel de levensduur van het object genoemd. Nadat een object is gemaakt, bestaat het (leeft) zolang ten minste één variabele zijn adres opslaat (er is ten minste één verwijzing ernaar). Als er geen verwijzingen meer zijn, gaat het object dood. Hier zijn enkele voorbeelden:"

public class MainClass
{
   public static void main (String[] args)
   {
    Tommy
     Cat cat = new Cat("Tommy");
     cat = null;
    
    Sammy
     Cat cat1 = new Cat("Sammy");
    Missy
    Cat cat2 = new Cat("Missy");
    cat2 = cat1;
    
    Ginger
    cat1 = new Cat("Ginger");
    cat2 = null;
    
    
   }
}

"Het Tommy-object bestaat slechts één regel vanaf het moment dat het is gemaakt. De enige variabele die naar het object verwijst, wordt in de volgende regel op null gezet, dus het object wordt vernietigd door de Java Virtual Machine (JVM)."

"Het Sammy-object wordt opgeslagen in de variabele cat1 nadat het is gemaakt. Of beter gezegd, de variabele slaat er een verwijzing naar op. Een paar regels later wordt deze verwijzing gekopieerd naar cat2 . Vervolgens wordt een verwijzing naar een ander object opgeslagen in cat1 . Nu verwijst alleen cat2 naar Sammy . Ten slotte wordt de laatst overgebleven verwijzing naar het object ingesteld op null in de laatste regel van de hoofdmethode."

"Het Missy-object bestaat slechts één regel nadat het is gemaakt. In de volgende regel wordt de cat2- variabele op een andere waarde gezet en gaat de verwijzing naar Missy verloren. Het object is niet langer toegankelijk, dus wordt het door de systeem (dwz het object is dood)."

"Eenmaal gemaakt, blijft het Ginger-object bestaan ​​totdat de methode eindigt. Aan het einde van de methode wordt de cat2- variabele vernietigd, en Ginger wordt onmiddellijk daarna vernietigd."

"Ik zie."

"Maar als we een Cat- object in een methode maken en er een verwijzing naar opslaan in een instantievariabele, dan zal het Cat- object blijven bestaan ​​zolang er naar wordt verwezen door een ander object dat nog in leven is."

"Eigenlijk wordt een object meestal niet onmiddellijk vernietigd door het systeem. De Java Virtual Machine voert van tijd tot tijd een 'garbage collection' uit, waarbij objecten worden vernietigd die zijn gemarkeerd voor verwijdering. Later meer over dat proces."

"En als we niet langer willen dat een variabele naar een object verwijst, kunnen we deze instellen op null of een verwijzing naar een ander object toewijzen."