Τι είναι το AutoBoxing και το unboxing στην Java;



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

Τις περισσότερες φορές χρησιμοποιούμε πρωτόγονους τύπους δεδομένων ενώ γράφουμε ένα πρόγραμμα σε οποιαδήποτε γλώσσα. Αλλά υπάρχουν καταστάσεις όπου πρωτόγονοι τύποι δεδομένων υπολείπονται στη σφαίρα και είναι ένα από αυτά. Για να ξεπεράσουμε τα μειονεκτήματα στους πρωτόγονους τύπους δεδομένων, χρησιμοποιούμε περιτυλίγματα . Αυτή η διαδικασία ονομάζεται Autoboxing. Θα συζητήσουμε λεπτομερή αυτόματη αποστολή σε Java μέσω της παρακάτω υποδοχής:

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





Τι είναι το εγκιβωτισμό και το Autoboxing στην Java;

Ο εγκιβωτισμός και το Αυτόματο κιβώτιο χρησιμοποιούνται συχνά για να αναφέρονται στην ίδια ιδέα. Στην πραγματικότητα, όμως, δεν είναι ακριβώς τα ίδια. Ας μιλήσουμε πρώτα για την έννοια του μποξ. Τι είναι η πυγμαχία; Φαίνεται ότι κρατάμε κάτι μέσα σε ένα κουτί, σωστά; Ναι, όταν λέμε ότι εγκιβωτίζουμε ή τυλίγουμε έναν πρωτόγονο τύπο δεδομένων, σημαίνει ότι το τυλίγουμε για να σχηματίσουμε ένα αντικείμενο. Ακόμα μπερδεμένος? Ας πάρουμε ένα παράδειγμα.

int FirstNumber = 1

Η μεταβλητή «FirstNumber» είναι τύπου int που είναι α . Τώρα, τι γίνεται αν θέλω να μετατρέψω τη μεταβλητή «FirstNumber» σε αντικείμενο; Η Java παρέχει έναν τρόπο να το κάνει αυτό.



Μόνο οι τιμές πίνακα εκτύπωσης php
Integer SecondNumber = νέος ακέραιος (2)

Σημειώστε ότι το 'SecondNumber' δεν είναι τύπου int αλλά είναι αντικείμενο του τύπου Integer. Αυτή η διαδικασία μετατροπής πρωτόγονων τύπων δεδομένων σε ένα αντικείμενο ονομάζεται πυγμαχία. Μπορείτε να ρωτήσετε πώς είναι δυνατόν; Ας σκεφτούμε ποιος είναι ο απλούστερος τρόπος εκτέλεσης αυτής της εργασίας. Μπορούμε να δημιουργήσουμε ένα τάξη που περιέχει ένα μεμονωμένο χαρακτηριστικό του τύπου int, έναν κατασκευαστή που παίρνει μια τιμή int τύπου και το εκχωρεί στο χαρακτηριστικό της κατηγορίας μας, και ορισμένες μεθόδους για να χειριστεί αυτήν την int τιμή. Για να μάθετε περισσότερα σχετικά με αυτό, ανατρέξτε σε αυτό έγγραφο .

Είδαμε πώς ο τύπος int μπορεί να μετατραπεί σε Java. Υπάρχει τρόπος μετατροπής άλλων πρωτόγονων τύπων δεδομένων σε αντικείμενα; Ναι, η Java έχει αντίστοιχα τάξη περιτυλίγματος για διαφορετικούς πρωτόγονους τύπους δεδομένων. Θα τα εξετάσουμε στην επόμενη ενότητα αυτής της ανάρτησης.

Αυτόματο κιβώτιο

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



Ας το καταλάβουμε με ένα παράδειγμα:

import java.util.ArrayList εισαγωγή java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () για (int i = 0 i<10 i++) Mylist.add(i) } }

Όπως συζητήσαμε νωρίτερα δέχεται μόνο αντικείμενα και ο πρωτόγονος τύπος δεδομένων δεν λειτουργεί. Στο παραπάνω πρόγραμμα, δεν πραγματοποιήσαμε μετατροπή σε αντικείμενα τύπου Integer, αλλά το πρόγραμμα εκτελείται χωρίς κανένα σφάλμα. Πως? Η απάντηση σε αυτήν την ερώτηση είναι ότι ο μεταγλωττιστής έκανε αυτόματα τη διαδικασία πυγμαχίας πριν προσθέσει την τιμή στο «Mylist» εξ ου και το όνομα Autoboxing.

Mylist.add (Integer.valueOf (i))

Η παραπάνω γραμμή κώδικα προστίθεται στο πρόγραμμά μας από τον μεταγλωττιστή.

Σημείωση- Στην παραπάνω γραμμή του κωδικού, το όνομα κλάσης «Integer» αναφέρεται πριν από τη μέθοδο valueOf () αφού η τιμήOf () είναι μια στατική μέθοδος. Για περισσότερα παραδείγματα ανατρέξτε στο έγγραφα .

Αποσύνδεση και Αυτόματο πλαίσιο

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

Για παράδειγμα-

Integer FirstNumber = new Integer (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Έξοδος- 1

Αυτόματο κιβώτιο- Όταν η διαδικασία αποσυμπίεσης που γίνεται από τον μεταγλωττιστή χωρίς να αναφέρεται ρητά ονομάζεται Αυτόματο κιβώτιο.

Για παράδειγμα-

Αριθμός ακέραιου = νέος ακέραιος αριθμός (20) int αριθμός = αριθμός

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

Μαθήματα περιτυλίγματος

Μετατρέψαμε σε είδος μεταβλητή intl Integer type αντικείμενο. Αυτή η ακέραια τάξη είναι μια κατηγορία περιτυλίγματος. Στην Java, είναι διαθέσιμη μια κατηγορία περιτυλίγματος . Αυτές οι τάξεις περιτυλίγματος μας βοηθούν στη μετατροπή μιας μεταβλητής από πρωτόγονο τύπο σε αντίστοιχο αντικείμενο τύπου κατηγορίας περιτυλίγματος. Οι μέθοδοι των τάξεων περιτυλίγματος είναι χρήσιμες για το χειρισμό των τιμών.

Ο παρακάτω πίνακας μας λέει για τον πρωτόγονο τύπο δεδομένων και την αντίστοιχη κατηγορία περιτυλίγματος.

Πρωτόγονος τύπος Κατηγορία περιτυλίγματος

boolean

Boolean

αντίο

Ψηφιόλεξη

απανθρακώνω

Χαρακτήρας

φλοτέρ

Φλοτέρ

int

Ακέραιος αριθμός

μακρύς

Μακρύς

μικρός

Μικρός

διπλό

Διπλό

Παρατηρήστε την κεφαλαιοποίηση στις τάξεις Wrapper.

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

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου 'autoboxing in Java' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.