"Hai, Amigo!"

"Hei, Ellie. Apakah kamu punya sesuatu yang menarik untuk diceritakan kepadaku?"

"Hari ini kita akan berbicara tentang berapa lama sebuah objek tinggal di memori, juga dikenal sebagai seumur hidup objek. Setelah sebuah objek dibuat, itu ada (hidup) selama setidaknya satu variabel menyimpan alamatnya (setidaknya ada satu referensi untuk itu). Jika tidak ada referensi lagi, objek mati. Berikut beberapa contohnya:"

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

"Objek Tommy hanya ada untuk satu baris sejak pembuatannya. Satu-satunya variabel yang mereferensikan objek diatur ke null di baris berikutnya, sehingga objek dihancurkan oleh Java Virtual Machine (JVM)."

"Objek Sammy disimpan dalam variabel cat1 setelah dibuat. Atau, lebih tepatnya, variabel menyimpan referensi ke sana. Beberapa baris kemudian, referensi ini disalin ke cat2 . Kemudian referensi ke objek lain disimpan ke cat1 . Sekarang, hanya cat2 referensi Sammy . Akhirnya, referensi terakhir yang tersisa ke objek diatur ke null di baris terakhir dari metode utama."

"Objek Missy hanya ada untuk satu baris setelah pembuatannya. Di baris berikutnya, variabel cat2 disetel ke nilai lain, dan referensi ke Missy hilang. Objek tidak lagi dapat diakses, sehingga dianggap sampah oleh sistem (yaitu objek sudah mati)."

"Setelah dibuat, objek Ginger tetap ada hingga metode berakhir. Di akhir metode, variabel cat2 dihancurkan, dengan Ginger dihancurkan segera setelah itu."

"Jadi begitu."

"Tapi jika kita membuat objek Cat di dalam metode dan menyimpan referensi ke dalam variabel instan, maka objek Cat akan ada selama dia direferensikan oleh objek lain yang masih hidup."

"Sebenarnya, suatu objek biasanya tidak langsung dihancurkan oleh sistem. Mesin Virtual Java melakukan 'pengumpulan sampah' dari waktu ke waktu, menghancurkan objek yang telah ditandai untuk dihapus. Lebih lanjut tentang proses itu nanti."

"Dan, jika kita tidak lagi ingin sebuah variabel mereferensikan suatu objek, kita dapat mengaturnya menjadi null , atau menetapkannya sebagai referensi ke objek lain."