Che cosa sono l'autoboxing e unboxing in Java?



Questo articolo ti fornirà un approccio completo all'autoboxing in Java insieme ad alcuni esempi per una migliore comprensione.

La maggior parte delle volte usiamo tipi di dati primitivi durante la scrittura di un programma in qualsiasi lingua. Ma ci sono situazioni in cui i tipi di dati primitivi non sono sufficienti nel regno di e è uno di loro. Per superare gli inconvenienti nei tipi di dati primitivi, utilizziamo involucri . Questa procedura si chiama Autoboxing. Discuteremo l'Autoboxing dettagliato in Java attraverso il docket seguente:

Cominciamo.





vincoli in sql con esempio

Cosa sono la boxe e l'autoboxing in Java?

Boxing e Autoboxing sono spesso usati per fare riferimento allo stesso concetto. Ma in realtà non sono esattamente la stessa cosa. Parliamo prima del concetto di boxe. Cos'è la boxe? Sembra che stiamo tenendo qualcosa dentro una scatola, giusto? Sì, quando diciamo che stiamo inscatolando o avvolgendo un tipo di dati primitivo, significa che lo stiamo avvolgendo per formare un oggetto. Ancora confuso? Facciamo un esempio.

int FirstNumber = 1

La variabile 'FirstNumber' è di tipo int che è un . E se volessi convertire la variabile 'FirstNumber' in un oggetto? Java fornisce un modo per farlo.



Integer SecondNumber = new Integer (2)

Si noti che 'SecondNumber' non è di tipo int ma è un oggetto di tipo Integer. Questo processo di conversione dei tipi di dati primitivi in ​​un oggetto è chiamato boxing. Potresti chiedere come è possibile? Pensiamo a qual è il modo più semplice per svolgere questo compito. Possiamo creare un file classe contenente un singolo attributo di tipo int, un costruttore che accetta un valore di tipo int e lo assegna al nostro attributo di classe e alcuni metodi per manipolare questo valore int. Per saperne di più fare riferimento a questo documento .

Abbiamo visto come il tipo int può essere convertito in Java. C'è un modo per convertire altri tipi di dati primitivi in ​​oggetti? Sì, Java ha rispettivi classe wrapper per diversi tipi di dati primitivi. Li esamineremo nella prossima sezione di questo post.

Boxing automatico

A questo punto sappiamo cos'è la boxe. Ora capiamo cos'è l'autoboxing. quando il processo di boxe è fatto dal compilatore senza menzionarlo esplicitamente, si chiama autoboxing.



Capiamo questo con un esempio:

import java.util.ArrayList import java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () for (int i = 0 i<10 i++) Mylist.add(i) } }

Come abbiamo discusso in precedenza accetta solo oggetti e il tipo di dati primitivo non funziona. Nel programma sopra, non abbiamo convertito il tipo in oggetti di tipo Integer, ma il programma viene eseguito senza errori. Come? La risposta a questa domanda è che il compilatore ha eseguito automaticamente il processo di boxing prima di aggiungere il valore a 'Mylist' da cui il nome Autoboxing.

Mylist.add (Integer.valueOf (i))

La riga di codice sopra viene aggiunta nel nostro programma dal compilatore.

Nota- Nella riga di codice sopra, il nome della classe 'Intero' è menzionato prima del metodo valueOf () poiché valueOf () è un metodo statico. Per ulteriori esempi fare riferimento a documenti .

Unboxing e Autounboxing

Abbiamo visto come del tipo di dati primitivo vengono convertiti in oggetti. Ma questa è solo metà della storia. L'altra metà della storia è la conversione di un oggetto di una classe di tipo wrapper nel suo tipo di dati primitivo spacchettamento .

Per esempio-

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

Uscita: 1

Autounboxing Quando il processo di unboxing eseguito dal compilatore senza menzionarlo esplicitamente si chiama Autounboxing.

Per esempio-

Numero intero = nuovo Numero intero (20) int num = Numero

Il codice sopra è un esempio di Autounboxing. Nella prossima sezione, impareremo le classi wrapper.

Classi wrapper

Abbiamo convertito in tipo variabile intl oggetto di tipo Integer. Questa classe intera è una classe wrapper. In Java, una classe wrapper è disponibile per ciascuno . Queste classi wrapper ci aiutano a convertire una variabile dal tipo primitivo al rispettivo oggetto di tipo classe wrapper. I metodi delle classi wrapper sono utili per manipolare i valori.

La tabella seguente ci parla del tipo di dati primitivo e della rispettiva classe wrapper.

Tipo primitivo Classe wrapper

booleano

Booleano

addio

sottostringa negli esempi di server sql

Byte

char

Personaggio

galleggiante

Galleggiante

int

Numero intero

lungo

Lungo

corto

Corto

Doppio

Doppio

Notare la capitalizzazione nelle classi wrapper.

Così siamo giunti alla fine di questo articolo su 'Autoboxing in Java'. Se desideri saperne di più, dai un'occhiata al da Edureka, una società di apprendimento online affidabile. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per formarti sia sui concetti di base che avanzati su Java insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'autoboxing in Java' e ti risponderemo il prima possibile.