"Merhaba, Amigo!"

"Hey Ellie. Bana söyleyeceğin ilginç bir şey var mı?"

"Bugün bir nesnenin bellekte ne kadar kaldığından bahsedeceğiz, bu aynı zamanda nesnenin ömrü olarak da bilinir. Bir nesne oluşturulduktan sonra, en az bir değişken adresini sakladığı sürece var olur (yaşar). başka referans yoksa nesne ölür. İşte bazı örnekler:"

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;
    
    
   }
}

"Tommy nesnesi, yaratıldığı andan itibaren yalnızca bir satır boyunca var olur. Nesneye başvuran tek değişken, hemen sonraki satırda null değerine ayarlanır, bu nedenle nesne, Java Sanal Makinesi (JVM) tarafından yok edilir."

"Sammy nesnesi , oluşturulduktan sonra cat1 değişkeninde depolanır . Veya daha doğrusu, değişken ona bir referans depolar. Birkaç satır sonra, bu referans cat2'ye kopyalanır . Daha sonra başka bir nesneye yapılan referans şuraya kaydedilir: cat1 . Şimdi, yalnızca cat2 Sammy'ye başvuruyor . Son olarak, ana yöntemin son satırında nesneye kalan son başvuru null olarak ayarlandı."

"Missy nesnesi, oluşturulduktan sonra yalnızca bir satır için var olur. Bir sonraki satırda, cat2 değişkeni başka bir değere ayarlanır ve Missy'ye yapılan başvuru kaybolur. Nesneye artık erişilemez, bu nedenle çöp olarak kabul edilir. sistem (yani nesne öldü)."

"Ginger nesnesi bir kez oluşturulduktan sonra, yöntem sona erene kadar var olur. Yöntemin sonunda, cat2 değişkeni yok edilir, ardından Ginger hemen yok edilir."

"Anlıyorum."

"Ancak, bir yöntemin içinde bir Cat nesnesi oluşturur ve buna bir örnek değişkende bir referans depolarsak, Cat nesnesi, hala canlı olan başka bir nesne tarafından başvurulduğu sürece var olacaktır."

"Aslında, bir nesne genellikle sistem tarafından hemen yok edilmez. Java Sanal Makinesi, silinmek üzere işaretlenmiş nesneleri yok ederek zaman zaman 'çöp toplama' gerçekleştirir. Bu işlemle ilgili daha sonra bilgi alacağız."

"Ve artık bir değişkenin bir nesneye referans vermesini istemiyorsak , onu null olarak ayarlayabilir veya ona başka bir nesneye referans atayabiliriz."