Skip to main content

Apa itu referensi yang lemah?

Referensi yang 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 kondisi khusus ada yang mencegah pengumpulan sampah normal terjadi.Algoritma pemrograman yang menggunakan referensi melingkar atau menyimpan informasi asing dalam cache atau manfaat struktur khusus dengan menggunakan referensi yang lemah.Pemanfaatan referensi lemah dalam jenis situasi ini memungkinkan pembersihan objek referensi yang tidak digunakan dan referensi lemah terkait.

dalam pemrograman komputer, referensi yang kuat biasanya dibuat secara default ketika suatu objek dibuat, dan memori yang ditempati olehObjek tetap dialokasikan selama referensi yang kuat tetap layak.Referensi yang kuat menjadi dibatalkan dan memori objek yang terkait menjadi dibebaskan tak lama setelah referensi yang kuat dan objeknya ditandai karena tidak lagi digunakan oleh suatu program.Dalam situasi tertentu, seperti pemrograman soket atau aplikasi manipulasi gambar, kelas yang digunakan untuk membuat objek yang berfungsi tidak memiliki kapasitas bawaan untuk menyimpan informasi tambahan yang diperlukan oleh aplikasi tertentu.Rincian tambahan untuk objek sementara seperti koneksi atau gambar perlu disimpan dalam objek cache tambahan dan ditautkan ke objek sementara dengan referensi.Ketika referensi yang lemah digunakan sebagai pengganti referensi yang 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 biasanyaTersedia dalam bahasa yang ditambah dengan subsistem koleksi sampah, termasuk Java, Python, Perl, C#, dan .NET Framework.Namun, dalam C ++, pemrogram biasanya bertanggung jawab untuk memastikan pembersihan memori.Bahasa ini telah mengimplementasikan kelas penunjuk pintar yang menyediakan beberapa fungsi yang sama seperti yang disediakan oleh referensi dan pengumpulan sampah yang lemah, membantu mengurangi kebocoran memori yang disebabkan oleh pembersihan pointer yang tidak tepat.

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