Pengumpulan Sampah di Jawa adalah proses dimana program melakukan manajemen memori secara otomatis. Pengumpul Sampah (GC) menemukan objek yang tidak digunakan dan menghapusnya untuk mendapatkan kembali memori. Di Java, alokasi memori dinamis objek dicapai dengan menggunakan operator baru yang menggunakan beberapa memori dan memori tetap dialokasikan sampai ada referensi untuk penggunaan objek.
Ketika tidak ada referensi ke suatu objek, itu dianggap tidak lagi diperlukan, dan memori, yang ditempati oleh objek dapat diambil kembali. Tidak ada kebutuhan eksplisit untuk menghancurkan sebuah objek karena Java menangani de-alokasi secara otomatis.
Teknik yang melakukan ini dikenal sebagai Pengumpulan Sampah . Program yang tidak mengalokasi memori pada akhirnya bisa macet ketika tidak ada memori yang tersisa di sistem untuk dialokasikan. Program ini dikatakan memiliki kebocoran memori.
Pengumpulan sampah di Jawa terjadi secara otomatis selama masa hidup program, menghilangkan kebutuhan untuk mengalokasikan memori dan dengan demikian menghindari kebocoran memori.
Dalam bahasa C, programmer bertanggung jawab untuk mende-alokasikan memori yang dialokasikan secara dinamis menggunakan fungsi free(). Di sinilah manajemen memori Java mengarah.
Catatan:Semua objek dibuat di Heap Bagian memori. Lebih lanjut tentang ini di tutorial selanjutnya.
Contoh:Mempelajari Mekanisme Pemungut Sampah di Jawa
Langkah 1) Salin kode berikut ke dalam editor.
class Student{
int a;
int b;
public void setData(int c,int d){
a=c;
b=d;
}
public void showData(){
System.out.println("Value of a = "+a);
System.out.println("Value of b = "+b);
}
public static void main(String args[]){
Student s1 = new Student();
Student s2 = new Student();
s1.setData(1,2);
s2.setData(3,4);
s1.showData();
s2.showData();
//Student s3;
//s3=s2;
//s3.showData();
//s2=null;
//s3.showData();
//s3=null;
//s3.showData();
}
}
Langkah 2) Simpan, Kompilasi dan Jalankan kode. Seperti yang ditunjukkan pada diagram, dua objek dan dua variabel referensi dibuat.
Langkah 3) Batalkan komentar pada baris # 20,21,22. Simpan, kompilasi &jalankan kode.
Langkah 4) Seperti yang ditunjukkan pada diagram di bawah, dua variabel referensi menunjuk ke objek yang sama.
Langkah 5) Uncomment baris #23 &24. Kompilasi, Simpan &Jalankan kodenya
Langkah 6) Seperti yang ditunjukkan pada diagram di bawah, s2 menjadi nol, tetapi s3 masih menunjuk ke objek dan tidak memenuhi syarat untuk pengumpulan sampah java.
Langkah 7) Uncomment baris #25 &26. Simpan, Kompilasi &Jalankan Kode
Langkah 8) Pada titik ini tidak ada referensi yang menunjuk ke objek dan memenuhi syarat untuk pengumpulan sampah. Itu akan dihapus dari memori, dan tidak ada cara untuk mengambilnya kembali.
Bagaimana cara menghapus objek di Java?
1) Jika Anda ingin membuat objek Anda memenuhi syarat untuk Pengumpulan Sampah, tetapkan variabel referensinya ke null.
2) Tipe primitif bukanlah objek. Mereka tidak dapat ditetapkan null.