Τι είναι η Εξωτερικοποίηση στην Java και πότε να τη χρησιμοποιήσετε;

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

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



Ας ξεκινήσουμε!



Τι είναι η Εξωτερικοποίηση στην Java;

Η εξωτερίκευση σε Java χρησιμοποιείται όποτε θέλετε να προσαρμόσετε το σειριοποίηση μηχανισμός. Εάν μια κλάση εφαρμόζει μια Εξωτερική δυνατότητα διασύνδεσης, τότε η σειριοποίηση του αντικειμένου θα γίνει με τη μέθοδο εγγραφήExternal () . Όταν ένα Εξωτερικοποιήσιμο αντικείμενο ανακατασκευάζεται στο τέλος του δέκτη, θα δημιουργηθεί μια παρουσία χρησιμοποιώντας έναν κατασκευαστή χωρίς ορίσματα και αυτή η μέθοδος ονομάζεται readExternal ().

Αυτό βασικά εξυπηρετεί το σκοπό της προσαρμοσμένης σειριοποίησης, όπου μπορείτε να αποφασίσετε τι θα αποθηκεύσετε σε μια ροή.



πίνακας cassandra έναντι οικογένειας στηλών

Πότε χρησιμοποιείτε το Externalization;

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

Τι είναι η διεπαφή Εξωτερικοποίησης;

Εάν θέλετε να ελέγξετε τη διαδικασία ανάγνωσης και γραφής των αντικειμένων κατά τη διαδικασία σειριοποίησης και απο-σειριοποίησης, πρέπει να εφαρμόσετε τη διεπαφή της κλάσης του αντικειμένου java.io. Εξαιρέσιμο . Μόνο τότε μπορείτε να εφαρμόσετε τον δικό σας κωδικό για να διαβάσετε και να γράψετε τις καταστάσεις του αντικειμένου. Οι μέθοδοι, readExternal () και εγγραφήExternal () ορίζονται από το Εξωτερικώς διεπαφή .

Ας κατανοήσουμε λεπτομερώς αυτές τις μεθόδους.



readExternal (ObjectInput in)

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

Έτσι readExternal () η μέθοδος παίρνει ένα Εισαγωγή αντικειμένου , μπορείτε να χρησιμοποιήσετε τη μέθοδο για να διαβάσετε τις καταστάσεις του αντικειμένου από την υποκείμενη ροή αυτών των κανόνων:

  • Για πρωτόγονους τύπους, μπορείτε να χρησιμοποιήσετε το ανάγνωσηXXX () μέθοδοι του Εισαγωγή δεδομένωνδιεπαφή. Είναι δηλαδή, readBoolean (), readByte (), readInt (), readLong ().
  • Εάν έχετε τύπους αντικειμένων όπως Strings, array, οποιοδήποτε από τα προσαρμοσμένα σας τάξεις , χρησιμοποιείτε το readObject () μέθοδος.

Παράδειγμα:

public void readExternal (ObjectInput in) ρίχνει ClassNotFoundException, IOException {this.code = in.readInt () this.name = (String) in.readObject () this.password = (String) in.readObject () this.birthday = ( Ημερομηνία) in.readObject ()}

Όπως μπορείτε να δείτε εδώ, έχω αποσυμπιεστεί τα ακόλουθα χαρακτηριστικά: κωδικός, όνομα, κωδικός πρόσβασης και γενέθλια.

writeExternal (ObjectOutput out)

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

Έτσι εγγραφήExternal () η μέθοδος παίρνει έναObjectOutput, μπορείτε να χρησιμοποιήσετε τη μέθοδο για να γράψετε τις καταστάσεις των αντικειμένων στην υποκείμενη ροή ακολουθώντας αυτούς τους κανόνες:

προϋποθέσεις για την εκμάθηση μηχανικής μάθησης
  • Για πρωτόγονους τύπους, χρησιμοποιήστε το εγγραφήXXX () μέθοδοι του Έξοδος δεδομένωνδιεπαφή, όπως writeBoolean (), writeByte (), εγγραφή σε (), εγγραφή Long (), και τα λοιπά.
  • Για τύπους αντικειμένων όπως , συστοιχίες , τα προσαρμοσμένα μαθήματά σας, μπορείτε να χρησιμοποιήσετε το writeObject () μέθοδος.

Παράδειγμα:

public void writeExternal (ObjectOutput out) ρίχνει το IOException {out.writeInt (code) out.writeObject (name) // write κενό password: out.writeObject ('') out.writeObject (γενέθλια)}

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

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

Εξωτερικοποίηση έναντι Σειριοποίησης: Διαφορά μεταξύ Εξωτερικοποίησης και Σειριοποίησης

Αυτή είναι μια από τις πιο συχνές ερωτήσεις .

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

Ελπίζω να είστε ξεκάθαροι με την Εξωτερικότητα έναντι της Σειριοποίησης. Έτσι με αυτό, φτάνουμε στο τέλος αυτού του άρθρου σχετικά με την «Εξωτερικότητα στην Java». Ελπίζω να είστε ξεκάθαροι με τα θέματα που μοιράζεστε μαζί σας.

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

Δείτε επίσης από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για μαθητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορες όπως το Hibernate & Spring.