Skip to main content

Τι είναι μια μαλακή αναφορά;

Στο Java Reg.Η γλώσσα κωδικοποίησης, οι αναφορές γίνονται συνεχώς σε αντικείμενα, χορδές και μεταβλητές, ακόμη και αν ο προγραμματιστής δεν γνωρίζει αυτές τις αναφορές.Αυτές οι αναφορές επικοινωνούν άμεσα με τον συλλέκτη σκουπιδιών, μια λειτουργία που συγκεντρώνει τις μη απαραίτητες πληροφορίες και την ρίχνει μακριά, ώστε να μην καταλαμβάνει πλέον τη μνήμη.Από προεπιλογή, όλες οι αναφορές είναι ισχυρές αναφορές και έχουν οριστεί χωρίς κωδικοποίηση, πράγμα που σημαίνει ότι δεν απελευθερώνονται στον συλλέκτη απορριμμάτων.Μια μαλακή αναφορά επιτρέπει την απομάκρυνση των δεδομένων.Είναι η αναφορά μεσαίου επιπέδου για όλες τις μη ισχυρές αναφορές.

Όποτε ένας προγραμματιστής κάνει οτιδήποτε με Java Reg,, είτε είναι τόσο απλό όσο η δημιουργία συμβολοσειράς ή η δημιουργία σύνθετων λειτουργιών, γίνεται αναφορά.Ο προγραμματιστής δεν χρειάζεται να γράψει μια εντολή αναφοράς.Η αναφορά γίνεται αυτόματα και είναι, από προεπιλογή, ισχυρή αναφορά.Αυτό σημαίνει ότι τα δεδομένα από την αναφορά δεν μπορούν να πεταχτούν, επειδή συνδέονται με ολοκληρωμένα αντικείμενα που απαιτούνται για ολόκληρο το σενάριο.Για παράδειγμα, εάν ένας προγραμματιστής δημιουργεί ένα σενάριο στο οποίο χρησιμοποιούνται σειριακοί αριθμοί ή συγκεντρώνονται ή δημιουργούνται άλλα προσωρινά στοιχεία πληροφοριών, κρατώντας τις πληροφορίες αυτές επιζήμιες.Η Java Το πρόγραμμα θα αρνείται να πετάξει τις πληροφορίες, ακόμη και όταν δεν είναι απαραίτητο, και το σενάριο θα χρειαζόταν όλο και περισσότερη μνήμη για να λειτουργήσει.λέει στον συλλέκτη σκουπιδιών ότι τα δεδομένα μπορούν να απελευθερωθούν.Μόλις κυκλοφορήσει, η συμβολοσειρά ή η ενότητα θα διαβάσουν ως μηδενικά.Ο συλλέκτης σκουπιδιών, ανάλογα με τη ρύθμισή του, θα αποφασίσει πότε θα πρέπει να πεταχτούν τα δεδομένα.

Υπάρχουν τρεις μη ισχυρές αναφορές: μαλακή αναφορά, αδύναμη αναφορά και φανταστική αναφορά.Η αδύναμη αναφορά είναι η πιο αδύναμη και τα δεδομένα της ρίχνονται γρήγορα.Οι μαλακές αναφορές, οι οποίες είναι καλύτερες για σενάρια όπου τα προσωρινά δεδομένα μπορούν να χρησιμοποιηθούν αρκετές φορές, βρίσκονται στη συνέχεια.Μια φανταστική αναφορά απορρίπτεται σχεδόν αυτόματα, μέσα σε ένα δευτερόλεπτο, και πρέπει να χρησιμοποιείται με φειδώ.

Το χρονικό διάστημα που παραμένει μια μαλακή αναφορά εξαρτάται συνήθως από την ποσότητα της μνήμης στον υπολογιστή.Εάν η μνήμη είναι γεμάτη, τότε ο συλλέκτης σκουπιδιών θα καταστρέψει πρώτα όλες τις αδύναμες αναφορές.Όταν όλες οι αδύναμες αναφορές έχουν φύγει και αν η μνήμη πρέπει ακόμα να καθαρίσει δεδομένα, τότε οι μαλακές αναφορές θα πεταχτούν στη συνέχεια.