Apa itu Referensi Lemah?

Referensi lemah adalah referensi ke objek dalam memori yang tidak mencegah objek dibersihkan oleh rutinitas pengumpulan sampah karena hubungannya dengan objek.Jenis referensi ini biasanya digunakan untuk membantu menghilangkan kebocoran memori ketika ada kondisi khusus yang mencegah pengumpulan sampah normal terjadi.Algoritma pemrograman yang menggunakan referensi melingkar atau menyimpan informasi asing dalam cache atau struktur khusus diuntungkan dengan menggunakan referensi yang lemah.Pemanfaatan referensi lemah dalam jenis situasi ini memungkinkan untuk membersihkan objek referensi yang tidak digunakan dan referensi lemah yang terkait.

Pria memegang komputer

Dalampemrograman komputer, referensi yang kuat biasanya dibuat secara default ketika sebuah objek dibuat, dan memori yang ditempati oleh objek tetap dialokasikan selama referensi yang kuat tetap layak.Referensi kuat menjadi batal dan memori objek yang terkait menjadi dibebaskan segera setelah referensi kuat dan objeknya ditandai sebagai tidak lagi digunakan oleh program.Dalam situasi tertentu, sepertipemrograman soketatau aplikasi manipulasi gambar, kelas yang digunakan untuk membuat objek kerja tidak memiliki kapasitas bawaan untuk menyimpan informasi tambahan yang diperlukan oleh aplikasi tertentu.Detail tambahan untuk objek sementara seperti koneksi atau gambar perlu disimpan dalam objek cache tambahan dan ditautkan ke objek sementara dengan referensi.Ketika referensi lemah digunakan sebagai pengganti referensi kuat, informasi tambahan tidak terikat oleh referensi dan dapat dihapus dari cache oleh pengumpul sampah setelah objek referensi ditandai sebagai tidak layak.

Kelas referensi yang lemah biasanya tersedia dalam bahasa yang ditambah dengan subsistem pengumpulan sampah, termasuk Java, Python,Perl, C#, dan kerangka .NET.Dalam C++, bagaimanapun, programmer biasanya bertanggung jawab untuk memastikan pembersihan memori.Bahasa ini telah menerapkan kelas penunjuk pintar yang menyediakan beberapa fungsi yang sama dengan referensi yang lemah dan pengumpulan sampah, membantu mengurangi kebocoran memori yang disebabkan oleh pembersihan penunjuk yang tidak tepat.

Untuk lebih memfasilitasi manajemen memori, bahasa dengan fasilitas pengumpulan sampah juga dapat meningkatkan fungsionalitas bahasa dengan menyediakan gradien referensi yang lebih baik selain referensi kuat atau lemah.Tipe data seperti referensi lunak dan referensi hantu dapat disertakan dalam bahasa ini, yang memungkinkan berbagai tingkat penangkapan kembali objek atau pemberitahuan dealokasi.Pemrogram yang menggunakan bahasa dengan pengumpulan sampah otomatis harus membiasakan diri dengan semua kelas referensi yang tersedia untuk meningkatkan kinerja aplikasi.