Συνιστάται, 2024

Επιλογή Συντάκτη

Διαφορά μεταξύ Τελικού, Τελικά και Τελειώνοντας σε Java

Οι λέξεις «τελικό, τέλος, και οριστικοποίηση» βρίσκονται μέσα στο πλαίσιο της Java. Κάθε μία από αυτές παρέχει διαφορετική λειτουργία. Η βασική διαφορά μεταξύ του τελικού και του τελικού είναι ότι ο τελικός είναι ένας τροποποιητής πρόσβασης, τελικά είναι ένα μπλοκ και οριστικοποιείται είναι μια μέθοδος μιας τάξης αντικειμένων. Υπάρχουν κάποιες άλλες διαφορές μεταξύ του τελικού, τελικά και του οριστικού που συζητούνται στο διάγραμμα σύγκρισης.

Συγκριτικό διάγραμμα

Βάση σύγκρισηςΤελικόςΤελικάΟριστικοποιώ
ΒασικόςΟ ορισμός είναι μια "λέξη-κλειδί" και "τροποποιητής πρόσβασης" στην 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 () είναι ως εξής.

 προστατευμένο κενό οριστικοποίηση () {// κωδικός οριστικοποίησης εδώ} 

Η μέθοδος οριστικοποίησης δηλώνεται ως προστατευμένη έτσι ώστε να μην είναι δυνατή η πρόσβαση από το εξωτερικό της τάξης.

Αυτή η μέθοδος καλείται πάντα πριν από τη συλλογή απορριμμάτων.

Βασικές διαφορές μεταξύ τελικού, τελικού και οριστικού

  1. Η λέξη-κλειδί είναι τροποποιητής πρόσβασης, τελικά είναι ένα μπλοκ και οριστικοποιείται είναι μια μέθοδος.
  2. Η λέξη κλειδί είναι εφαρμοστέα στις κλάσεις, τις μεταβλητές και τις μεθόδους των τάξεων, τελικά είναι ένα μπλοκ που σχετίζεται με το δοκιμαστικό μπλοκ catch που χρησιμοποιείται για την αντιμετώπιση εξαιρέσεων, η οριστικοποίηση είναι μια μέθοδος που λειτουργεί μόνο σε αντικείμενα.
  3. Η μεταβλητή που δηλώθηκε ως τελική γίνεται σταθερή και δεν μπορεί να ξαναδοθεί ξανά, η μέθοδος που δηλώνεται ως τελική δεν μπορεί να αντικατασταθεί και η τάξη που δηλώθηκε ως τελική δεν μπορεί ποτέ να κληρονομηθεί. Το τελικό μπλοκ χρησιμοποιείται για να καθαρίσει τους πόρους που χρησιμοποιούνται από το δοκιμαστικό και το block block. Η μέθοδος οριστικοποίησης χρησιμοποιείται για τον καθαρισμό των πόρων που χρησιμοποιούνται από ένα αντικείμενο πριν καταστραφεί το αντικείμενο.

Συμπέρασμα:

Ο τελικός, τελικά και οριστικός έχει διαφορετική επίδραση όταν εφαρμόζεται σε μια μέθοδο.

Top