"Halo maneh!"

"Saiki aku bakal nyritakake babagan siji liyane sing apik banget: WeakReference ."

"Katon meh padha karo SoftReference:"

Tuladha
// Create a Cat object
Cat cat = new Cat();

// Create a weak reference to a Cat object
WeakReference<Cat> catRef = new WeakReference<Cat>(cat);

// Now only the catRef weak reference points at the object
cat = null;

// Now the ordinary cat variable also references the object
cat = catRef.get();

// Clear the weak reference
catRef.clear();

"Referensi sing lemah nduweni fitur khusus liyane."

"Yen obyek ora duwe referensi biasa utawa referensi alus, nanging mung referensi banget, obyek kasebut urip, nanging bakal dirusak ing koleksi sampah sabanjure."

"Apa sampeyan bisa ngomong maneh? Apa bedane referensi iki?"

"Obyek sing disimpen saka pati mung dening SoftReference bisa urip minangka akeh koleksi uwuh sing disenengi lan mbokmenawa bakal numpes yen memori ora cukup."

"Obyek sing ditahan saka pati mung dening WeakReference ora bakal urip ing koleksi sampah sabanjure. Nanging nganti kedadeyan kasebut, sampeyan bisa njaluk obyek kasebut kanthi nelpon metode get () ing WeakReference banjur nelpon metode utawa nindakake perkara liya. ."

"Apa yen obyek kasebut dirujuk dening SoftReference lan WeakReference?"

"Iku prasaja. Yen paling ora ana siji referensi biasa kanggo obyek, iku dianggep urip. Miturut cara, referensi kuwi diarani StrongReference."

"Yen ora ana referensi biasa sing nuduhake obyek, nanging SoftReference ora, mula bisa digayuh kanthi gampang."

"Yen ora ana referensi reguler utawa SoftReferences nuding obyek, nanging WeakReference ora, mula ora bisa digayuh."

"Mikir babagan. A SoftReference nglindhungi obyek saka dibusak lan mesthekake yen obyek bakal dibusak mung yen ana memori boten cecek. A WeakReference nahan obyek nganti koleksi uwuh sabanjuré. SoftReference nawakake resistance luwih kanggo pambusakan ".

"Ah. Kayane aku ngerti."

"Apik, banjur aku bakal nyritakake babagan liyane sing menarik babagan WeakReferences - WeakHashMap."

"Swara serius!"

"Lan sawetara! WeakHashMap minangka HashMap sing kunci referensi lemah (WeakReferences)."

"Yaiku, sampeyan nambahake obyek menyang HashMap kasebut lan nggarap dheweke. Bisnis kaya biasane."

"Anggere obyek sing sampeyan simpen ing WeakHashMap duwe referensi biasa (kuwat utawa alus) minangka kunci, obyek kasebut bakal urip."

"Nanging umpamane ora ana referensi maneh kanggo obyek kasebut ing kabeh aplikasi. Kabeh sing nyegah dheweke mati yaiku sawetara WeakReferences ing WeakHashMap. Sawise koleksi sampah sabanjure, obyek kasebut bakal ilang saka WeakHashMap. ora tau ana.”

"Aku ora yakin aku ngerti."

"Sampeyan nyimpen pasangan obyek ing WeakHashMap: tombol lan nilai. Nanging WeakHashMap ora ngrujuk tombol kasebut langsung, nanging liwat WeakReferences. Mulane, nalika obyek sing digunakake minangka tombol dadi ora bisa digayuh, bakal dirusak ing sabanjure. koleksi sampah. Lan minangka asil, nilai-nilai kasebut uga kanthi otomatis dibusak saka WeakHashMap."

"Sampeyan trep banget nggunakake WeakHashMap kanggo nyimpen informasi tambahan babagan obyek tartamtu."

"Kaping pisanan, ngakses informasi gampang banget yen sampeyan nggunakake obyek kasebut minangka kunci."

"Kapindho, yen obyek dirusak, bakal ilang saka HashMap bebarengan karo kabeh data sing ana gandhengane."

"Tuladhane:

Tuladha
// Create an object to store additional information about the user
WeakHashMap<User, StatisticInfo> userStatistics = new WeakHashMap<User, StatisticInfo>();

// Put information about the user into userStatistics
User user = session.getUser();
userStatistics.put(user, new StatisticInfo (…));

// Get information about the user from userStatistics
User user = session.getUser();
StatisticInfo statistics = userStatistics.get(user);

// Remove any information about the user from userStatistics
User user = session.getUser();
userStatistics.remove(user);
  1. "Ing WeakHashMap, kunci disimpen minangka WeakReferences."
  2. "Sanalika obyek pangguna dirusak dening kolektor sampah, metode mbusak (pangguna) diarani sacara implisit ing WeakHashMap lan informasi sing ana gandhengane karo obyek pangguna bakal dibusak saka WeakHashMap kanthi otomatis."

"Iki katon kaya alat sing kuat. Ing ngendi aku bisa nggunakake?"

"Sing gumantung ing kahanan. Ayo dadi ngomong sampeyan duwe thread ing program sing nglacak karya sawetara tugas, diwakili dening obyek, lan nulis informasi bab mau menyang log. Utas iki bisa nyimpen obyek sing dipantau ing WeakHashMap. Sanalika amarga obyek kasebut ora dibutuhake, kolektor sampah bakal mbusak, lan referensi kasebut uga kanthi otomatis dibusak saka WeakHashMap.

"Swara menarik. Aku wis rumangsa kaya durung nulis program Jawa serius sing njupuk kauntungan saka mekanisme kuat kuwi. Nanging aku bakal bisa menyang iku. Thanks a lot, Ellie, kanggo pawulangan menarik."