Bazı nesneye dayalı diller tüm oluşturduğunuz nesneleri takip etmenizi ve ihtiyacınız olmadığında yok etmenizi gerektirir. Hafızayı kendi başınıza yönetmek tedirginlik ve hataya düşmeye sebep oluşturabilir. Java platformu istediğiniz kadar nesne oluşturmanıza izin verir (elbette sisteminizin üstesinden gelebileceği kadar), ve onları yok etmeniz için endişelenmenize gerek yok. JRE nesneleri daha fazla kullanılmayacağına karar verdiğinde onları siler. Bu sürecin adına “garbage collection” denir. Bir nesne referans barındırmadığında garbage collection için uygun hale gelir. Referanslar genellikle değişken scope’ın dışına çıktığında sonlanır. Bazen bir değişkene null değerini atayarak da nesnenin referansını sonlandırabilirsiniz.  Bir programda aynı nesneye birden fazla referans olabileceğini hatırlayın; bu nesnenin garbage collection’a uygun olabilmesi  tüm bu referanslarının sonlanması gerekir.

JRE, referansa sahip olmayan nesnelerce kullanılan hafızayı belirli aralıklarla boşaltan bir garbage collector’a sahiptir. Garbage collector işini doğru zaman olduğuna karar verdiğinde otomatik olarak yapar.