WeakHashMap -- מישהו בדק? (java)

WeakHashMap -- מישהו בדק? (java)

אני רוצה להשתמש ב WeakHashMap בתור cache ארעי לאוביקטים. לפי הבנתי (תקנו אותי אם אני טועה), ה WeakReference שמהם מורכבת ה WeakHashMap "נמחקים" כאשר הם תופסים מקום שה GC מחליט שצריך לנקות. כלומר הreference יישאר כל עוד הוא לא לוקח משאבים שמישהו אחר צריך. זה יאפשר לי לעשות מצד אחד cache לתוצאות של פעולות שאני עושה, ומצד שני לדעת שאיברים מה cache ייפנו מקום בזיכרון/משאבים אם וכאשר המערכת הכללית שלי תזדקק לכך. השאלה שלי היא האם מישהו בדק את היעילות/נכונות של ה WeakReference, כי לי לא יצא עדיין -- האם באמת ה reference מתנתק רק כשצריך את המשאבים שהוא תופס?
 

zeevb

New member
Weak & Soft References

שים לב להבדל בין Soft Reference ל- Weak Reference: Soft Reference מנוקה כאשר ה-GC מחליט שיש צורך בזכרון נוסף ואילו Weak Reference הוא reference לאוביקט שלא נלקח בחשבון ע"י ה-GC זאת אומרת, זוהי דרך לשמור הצבעה לאוביקט שמתנקה אוטומטית כאשר אין יותר הצבעות אחרות (רגילות) לאותו אוביקט וה-GC מחליט לנקות אותו. מהתאור שלך נראה שאתה מבקש פונציונליות של Soft Reference ולא של Weak Reference.
 
למעלה