Συγκριτικό διάγραμμα
Βάση σύγκρισης | Τελικός | Τελικά | Οριστικοποιώ |
---|---|---|---|
Βασικός | Ο ορισμός είναι μια "λέξη-κλειδί" και "τροποποιητής πρόσβασης" στην Java. | Τέλος είναι ένα "μπλοκ" στην Java. | Finalize είναι μια "μέθοδος" στην Java. |
Εφαρμόσιμος | Ο ορισμός είναι μια λέξη-κλειδί που ισχύει για τάξεις, μεταβλητές και μεθόδους. | Τέλος, είναι ένα μπλοκ που συνδέεται πάντοτε με το μπλοκ δοκιμής και αλίευσης. | finalize () είναι μια μέθοδος που εφαρμόζεται σε αντικείμενα. |
Εργαζόμενος | (1) Η τελική μεταβλητή γίνεται σταθερή και δεν μπορεί να εκχωρηθεί εκ νέου. (2) Μια τελική μέθοδος δεν μπορεί να αντικατασταθεί από την τάξη των παιδιών. (3) Η τελική κλάση δεν μπορεί να επεκταθεί. | Ένα "τελικό" μπλοκ, καθαρίστε τους πόρους που χρησιμοποιούνται στο μπλοκ "δοκιμάστε". | Η μέθοδος Finalize εκτελεί καθαρίζει τις δραστηριότητες που σχετίζονται με το αντικείμενο πριν την καταστροφή του. |
Εκτέλεση | Η τελική μέθοδος εκτελείται κατά την κλήση της. | Το μπλοκ "Τέλος" εκτελείται αμέσως μετά την εκτέλεση του μπλοκ "try-catch". | finalize () μέθοδος εκτελείται λίγο πριν την καταστροφή του αντικειμένου. |
Ορισμός τελικού
Το "Final" είναι μια λέξη-κλειδί στην Java. Είναι ένας τροποποιητής πρόσβασης. Η "τελική" λέξη-κλειδί ισχύει για τις κλάσεις, τις μεθόδους και τις μεταβλητές. Ας δούμε πώς λειτουργεί με καθένα από αυτά.
Τελική μεταβλητή
- Όταν μια τελική λέξη-κλειδί εφαρμόζεται στη μεταβλητή, δεν μπορεί να τροποποιηθεί περαιτέρω.
- Μια τελική μεταβλητή πρέπει να αρχικοποιηθεί όταν δηλωθεί.
- Σε μια κοινή σύμβαση κωδικοποίησης, οι τελικές μεταβλητές δηλώνονται στην UPPERCASE.
- Η τελική μεταβλητή δεν καταλαμβάνει τη μνήμη σε βάση ανά περίπτωση.
τελικό int FILE_OPEN = 2;
Τελικές μέθοδοι
- Όταν μια μέθοδος στην τάξη κηρύσσεται ως τελική, δεν μπορεί να αντικατασταθεί από την υποκατηγορία της.
- Μικρές μέθοδοι που δηλώνονται τελικές μπορούν να γίνουν "inline" από τον μεταγλωττιστή, γεγονός που θα μειώσει το γενικό κόστος των κλήσεων λειτουργίας και θα αυξήσει τις βελτιώσεις επιδόσεων.
- Οι ανακληθείσες μέθοδοι κλήσης, επιλύονται δυναμικά, αλλά όταν μια μέθοδος κηρύσσεται ως τελική, δεν μπορεί να παραμεληθεί. Επομένως, η κλήση της λειτουργίας μπορεί να επιλυθεί κατά τον χρόνο σύνταξης.
class A {final void meth () {System.out.println ("Αυτή είναι μια τελική μέθοδος."); }} class B εκτείνεται A {void meth () {// Clas B δεν μπορεί να κληρονομήσει τη μέθοδο της κλάσης A. System.out.println ("Δεν παρακάμπτει"); }}
Τελική κλάση
- Όταν μια τάξη κηρύσσεται ως τελική, τότε δεν μπορεί να κληρονομείται από οποιαδήποτε υποκατηγορία.
- Η κήρυξη μιας κλάσης ως τελικής δήλωσης θα τερματίσει αυτόματα όλες τις μεθόδους της.
- Δεν μπορείτε να δηλώσετε μια τάξη τόσο ως "αφηρημένη" όσο και ως "τελική".
η τελική κλάση A {// ...} κατηγορίας B επεκτείνεται A {// Η κλάση B δεν μπορεί να κληρονομήσει την τάξη Α // ...}
Ορισμός του Τέλους
- Στην Java, "τελικά" είναι ένα μπλοκ που συνδέεται πάντα με το block try / catch.
- Το μπλοκ "τελικά" εκτελείται μετά το μπλοκ try / catch και πριν από τον κώδικα που ακολουθεί το μπλοκ try / catch.
- Το μπλοκ "τελικά" θα εκτελέσει αν η εξαίρεση έχει ριχτεί ή όχι.
- Όταν εξαχθεί μια εξαίρεση και κανένα μπλοκ ασφάλισης δεν ταιριάζει με την εξαίρεση ακόμα και τότε, το μπλοκ "τελικά" εκτελείται.
- Όταν μια μέθοδος επιστρέφει στον καλούντα από μέσα στο μπλοκ try / catch μέσω μιας εξαίρετης εξαίρεσης ή μιας ρητής δήλωσης επιστροφής, το μπλοκ "finally" εκτελείται ακριβώς πριν από την επιστροφή της μεθόδου στον καλούντα.
- Το μπλοκ "τελικά" χρησιμοποιείται για να καθαρίσει τους πόρους ή να απελευθερώσει τη μνήμη που χρησιμοποιείται στο μπλοκ "try".
- Το μπλοκ "τελικά" είναι προαιρετικό, αλλά είναι μια καλή πρακτική να γράφετε τελικά το μπλοκ μετά το μπλοκ δοκιμής / αλίευσης.
class FinallyExample {// Αυτή η μέθοδος κάνει μια εξαίρεση από τη μέθοδο. static void procA () {δοκιμάστε το {System.out.println ("inside procA"); ρίξει νέα RuntimeException ("demo")? } τέλος {System.out.println ("procA είναι τελικά")? }} // Επιστρέψτε από μέσα σε ένα δοκιμαστικό μπλοκ. static void procB () {δοκιμάστε {System.out.println ("inside procB"); ΕΠΙΣΤΡΟΦΗ; } τέλος {System.out.println ("procB's finally"). }} // Εκτελέστε κανονικά ένα μπλοκ δοκιμής. static void procC () {try {System.out.println ("μέσα στο procC"); } τελικά {System.out.println ("procC's finally"); }} δημόσιο static κενό κύρια (String args []) {try {procA (); } αλίευση (Εξαίρεση e) {System.out.println ("Παγίδα εξαιρέσεων"). } procB (); procC (); }} // output inside procA Η procA είναι τελικά η εξαίρεση που αλιεύεται μέσα στο procB procB τελικά μέσα στο procC procC's τελικά
Ορισμός της ολοκλήρωσης
- Finalize είναι μια μέθοδος σε μια κατηγορία αντικειμένων.
- Ένα αντικείμενο μπορεί να κρατάει κάποιους πόρους που δεν είναι java, όπως χειρισμός αρχείων. τότε πρέπει να ελευθερωθεί πριν καταστραφεί.
- Αυτή η μέθοδος χρησιμοποιείται από τον συλλέκτη σκουπιδιών πριν καταστρέψει τελείως το αντικείμενο.
- Αυτή η μέθοδος εκτελεί δραστηριότητες καθαρισμού για το αντικείμενο πριν καταστραφεί.
Η γενική μορφή της μεθόδου finalize () είναι ως εξής.
προστατευμένο κενό οριστικοποίηση () {// κωδικός οριστικοποίησης εδώ}
Η μέθοδος οριστικοποίησης δηλώνεται ως προστατευμένη έτσι ώστε να μην είναι δυνατή η πρόσβαση από το εξωτερικό της τάξης.
Αυτή η μέθοδος καλείται πάντα πριν από τη συλλογή απορριμμάτων.
Βασικές διαφορές μεταξύ τελικού, τελικού και οριστικού
- Η λέξη-κλειδί είναι τροποποιητής πρόσβασης, τελικά είναι ένα μπλοκ και οριστικοποιείται είναι μια μέθοδος.
- Η λέξη κλειδί είναι εφαρμοστέα στις κλάσεις, τις μεταβλητές και τις μεθόδους των τάξεων, τελικά είναι ένα μπλοκ που σχετίζεται με το δοκιμαστικό μπλοκ catch που χρησιμοποιείται για την αντιμετώπιση εξαιρέσεων, η οριστικοποίηση είναι μια μέθοδος που λειτουργεί μόνο σε αντικείμενα.
- Η μεταβλητή που δηλώθηκε ως τελική γίνεται σταθερή και δεν μπορεί να ξαναδοθεί ξανά, η μέθοδος που δηλώνεται ως τελική δεν μπορεί να αντικατασταθεί και η τάξη που δηλώθηκε ως τελική δεν μπορεί ποτέ να κληρονομηθεί. Το τελικό μπλοκ χρησιμοποιείται για να καθαρίσει τους πόρους που χρησιμοποιούνται από το δοκιμαστικό και το block block. Η μέθοδος οριστικοποίησης χρησιμοποιείται για τον καθαρισμό των πόρων που χρησιμοποιούνται από ένα αντικείμενο πριν καταστραφεί το αντικείμενο.
Συμπέρασμα:
Ο τελικός, τελικά και οριστικός έχει διαφορετική επίδραση όταν εφαρμόζεται σε μια μέθοδο.