Apakah Hierarki Rujukan di Jawa?
SoftReferences vs. WeakReferences
Semasa berbincang rujukan di Jawa, seseorang sering menemui istilah "rujukan lembut" dan "lemah rujukan." Apakah sebenarnya yang diwakili oleh kedua-dua jenis rujukan ini, dan bagaimana ia berbeza?
Seperti yang dijelaskan oleh artikel "Memahami Rujukan Lemah" oleh Ethan Nicholas, rujukan yang lemah ialah rujukan yang tidak cukup kuat untuk menyimpan objek dalam ingatan . Ini bermakna apabila tiada rujukan kukuh yang menunjuk kepada objek, pemungut sampah boleh mengeluarkannya.
Sebaliknya, rujukan lembut adalah seperti rujukan yang lemah, tetapi mereka kurang berminat untuk membuang objek yang dirujuk. Objek yang boleh dicapai dengan lembut kekal dalam ingatan selagi terdapat memori yang mencukupi. Jika ingatan menjadi berkurangan, pengumpul sampah mungkin membersihkan rujukan lembut untuk mengosongkan ruang.
Sifat ini menjadikan rujukan lembut sesuai untuk cache, di mana objek boleh disimpan untuk akses pantas selagi memori membenarkan. Jika terdapat kekurangan ingatan, objek yang paling tidak penting (yang boleh dicapai dengan lembut) akan dialih keluar.
Selain itu, Peter Kessler memerhatikan bahawa Sun JRE melayan rujukan lembut secara berbeza daripada rujukan lemah. Pelanggan JRE mengutamakan mengalih keluar rujukan lembut untuk mengekalkan jejak memori yang lebih kecil, manakala pelayan JRE memfokuskan pada prestasi dengan mengembangkan timbunan dan bukannya menghapuskan rujukan lembut.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Rujukan Lembut dan Rujukan Lemah di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!