Τι είναι η μέθοδος finalize() στην Java και πώς να την παρακάμψετε

Ti Einai E Methodos Finalize Sten Java Kai Pos Na Ten Parakampsete



Η Java παρέχει στον προγραμματιστή μια μεγάλη λειτουργικότητα για την αποτελεσματική διαχείριση των πόρων του συστήματος. Σε ένα τέτοιο σενάριο, το « Οριστικοποιώ() τίθεται σε ισχύ η μέθοδος που απελευθερώνει τους πόρους του συστήματος πριν ο συλλέκτης σκουπιδιών εκτελέσει για ένα συγκεκριμένο αντικείμενο. Η 'Java Virtual Machine (JVM)', ωστόσο, επιτρέπει την κλήση της μεθόδου 'finalize()' μία φορά ανά αντικείμενο.

Αυτό το ιστολόγιο θα συζητήσει τη χρήση και την παράκαμψη της μεθόδου 'finalize()'.







Τι είναι η μέθοδος 'finalize()' της Java και πώς να την παρακάμψετε;

Ο ' Οριστικοποιώ() 'μέθοδος του ' Αντικείμενο Η κλάση καλείται από τον «Συλλέκτης σκουπιδιών» ακριβώς πριν διαγράψει το αντικείμενο που είναι κατάλληλο για συλλογή σκουπιδιών για να εφαρμόσει την εργασία καθαρισμού.



Σύνταξη



προστατευμένο κενό οριστικοποίηση ( ) ρίχνει Πετάσιμος





Σε αυτή τη σύνταξη, ' προστατεύονται ” είναι ένας προσδιοριστής πρόσβασης που υποδηλώνει ότι αυτή η μέθοδος είναι προσβάσιμη μόνο εντός της κλάσης και των παραγόμενων κλάσεων αυτής της κλάσης.

Παράδειγμα 1: Εφαρμογή της μεθόδου “finalize()” στην Java



Αυτό το παράδειγμα επεξηγεί τη χρήση της μεθόδου 'finalize()':

δημόσια τάξη Finalize2 {
προστατευμένο κενό οριστικοποίηση ( ) {
System.out.println ( 'Αυτή είναι η μέθοδος Finalize!' ) ;
}
δημόσιο στατικό κενό κύριο ( Σειρά [ ] args ) {
Αντικείμενο Finalize2 = νέο Finalize2 ( ) ;
αντικείμενο = μηδενικό;
System.gc ( ) ;
System.out.println ( «Επίκληση του σκουπιδοσυλλέκτη!» ) ;
} }

Στις παραπάνω γραμμές κώδικα:

  • Εφαρμόστε το ' Οριστικοποιώ() ' μέθοδος εντός της κλάσης 'Finalize2' που περιλαμβάνει την δηλωμένη δήλωση.
  • Σε ' κύριος ”, δημιουργήστε ένα αντικείμενο κλάσης μέσω του κατασκευαστή “Finalize2()”.
  • Τώρα, εκχωρήστε ένα αντικείμενο σε ' μηδενικό ' αξία. Είναι τέτοιο που όταν έχει «μηδενική» τιμή, δεν υπάρχει αναφορά και έτσι, είναι κατάλληλο για αποκομιδή σκουπιδιών.
  • Μετά από αυτό, εφαρμόστε το ' System.gc () ' μέθοδος εκτέλεσης του σκουπιδιού, καλώντας έτσι τη μέθοδο 'finalize()'.

Παραγωγή

Εδώ, μπορεί να επαληθευτεί ότι η μέθοδος 'finalize()' καλείται κατάλληλα.

Παράδειγμα 2: Παράκαμψη της μεθόδου Java 'finalize()'.

Ο ' Αντικείμενο Η κλάση αντιστοιχεί στη γονική κλάση όλων των κλάσεων Java. Η μέθοδος 'finalize()' που υπάρχει σε αυτήν την κλάση δεν έχει καμία υλοποίηση. Ωστόσο, στον ορισμό της τάξης, οι δραστηριότητες καθαρισμού υπάρχουν. Επομένως, η παράκαμψη αυτής της μεθόδου έχει ως αποτέλεσμα την εκτέλεση των καθορισμένων δραστηριοτήτων καθαρισμού:

δημόσια τάξη Οριστικοποίηση {
προστατευμένο κενό οριστικοποίηση ( ) ρίχνει Πετάσιμος {
δοκιμάστε {
System.out.println ( 'Η μέθοδος finalize() class' ) ;
}
σύλληψη ( Πετάσιμο εκτός ) {
ρίξει εκτός?
}
τελικά {
System.out.println ( 'Καλώντας τη μέθοδο finalize() της κλάσης Object' ) ;
υπερ.οριστικοποιώ ( ) ;
} }
δημόσιο στατικό κενό κύριο ( Σειρά [ ] args ) ρίχνει Πετάσιμος {
Finalize obj = νέος Finalize ( ) ;
obj.οριστικοποιώ ( ) ;
} }

Σύμφωνα με το παραπάνω μπλοκ κώδικα:

  • Καθορίστε το ' Οριστικοποιώ() ' μέθοδος και δηλώστε το ' Πετάσιμο εξαίρεση, αντίστοιχα.
  • Στο ' δοκιμάστε ' μπλοκ, καθορίστε την δηλωμένη δήλωση και αντιμετωπίστε την εξαίρεση στο ' σύλληψη ' ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ.
  • Στο ' τελικά 'μπλοκ, το ' σούπερ Η λέξη-κλειδί δείχνει τη μέθοδο 'finalize()' της κλάσης αντικειμένου. Εφαρμόζεται σε αυτό το συγκεκριμένο μπλοκ για να διασφαλιστεί η εκτέλεση της μεθόδου 'finalize()' ακόμα και αν αντιμετωπίζεται εξαίρεση.
  • Σε ' κύριος ”, δημιουργήστε ένα αντικείμενο κλάσης και αντικαταστήστε τη μέθοδο “finalize()” της κλάσης αντικειμένου με τη μέθοδο που καθορίζεται/καθορίζεται στην κλάση “Finalize”.

Παραγωγή

Σε αυτό το αποτέλεσμα, μπορεί να παρατηρηθεί ότι η μέθοδος 'finalize()' έχει παρακαμφθεί με επιτυχία.

συμπέρασμα

Ο ' Οριστικοποιώ() ' η μέθοδος καλείται από τον 'Συλλεκτή σκουπιδιών' πριν από τη διαγραφή του αντικειμένου και μπορεί να παρακαμφθεί χρησιμοποιώντας το ' σούπερ » λέξη-κλειδί. Αυτό το ιστολόγιο συζητούσε τη χρήση και την παράκαμψη της μεθόδου 'finalize()' στην Java.