Junior — Middle
Μπορείτε να εξηγήσετε για ποιο λόγο και πώς εφαρμόζεται η κλάση WeakReference στη Java;
sobes.tech AI
Απάντηση από AI
Η κλάση WeakReference στη Java χρησιμοποιείται για τη δημιουργία αδύναμων αναφορών σε αντικείμενα. Σε αντίθεση με τις ισχυρές αναφορές, οι αδύναμες αναφορές δεν εμποδίζουν τη συλλογή απορριμμάτων: αν ένα αντικείμενο είναι προσβάσιμο μόνο μέσω αδύναμων αναφορών, μπορεί να διαγραφεί από τον συλλέκτη απορριμμάτων.
Αυτό είναι χρήσιμο, για παράδειγμα, για caching, όταν χρειάζεται να διατηρούνται αντικείμενα αλλά χωρίς να εμποδίζεται η διαγραφή τους σε περίπτωση έλλειψης μνήμης. Στο Android, το WeakReference χρησιμοποιείται συχνά για την αποθήκευση αναφορών σε Context ή Activity, για να αποφεύγονται διαρροές μνήμης.
Παράδειγμα χρήσης:
WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
MyObject obj = weakRef.get();
if (obj != null) {
// το αντικείμενο είναι ακόμα διαθέσιμο
} else {
// το αντικείμενο έχει διαγραφεί από τον συλλέκτη απορριμμάτων
}