¿Qué es AutoBoxing y unboxing en Java?



Este artículo le brindará un enfoque integral del Autoboxing en Java junto con algunos ejemplos para una mejor comprensión.

La mayoría de las veces usamos tipos de datos primitivos al escribir un programa en cualquier idioma. Pero hay situaciones en las que los tipos de datos primitivos se quedan cortos en el ámbito de y es uno de ellos. Para superar los inconvenientes de los tipos de datos primitivos, utilizamos envoltorios . Este procedimiento se llama Autoboxing. Discutiremos el Autoboxing detallado en Java a través del siguiente expediente:

Vamos a empezar.





¿Qué es Boxing y Autoboxing en Java?

Boxeo y Autoboxing se utilizan a menudo para referirse al mismo concepto. Pero en realidad, no son exactamente iguales. Primero hablemos del concepto de boxeo. ¿Qué es el boxeo? Parece que estamos guardando algo dentro de una caja, ¿verdad? Sí, cuando decimos que estamos encajonando o envolviendo un tipo de datos primitivo, significa que lo estamos envolviendo para formar un objeto. ¿Sigo confundido? Tomemos un ejemplo.

int FirstNumber = 1

La variable 'FirstNumber' es de tipo int, que es un . Ahora, ¿qué pasa si quiero convertir la variable 'FirstNumber' en un objeto? Java proporciona una forma de hacerlo.



Integer SecondNumber = nuevo entero (2)

Observe que 'SecondNumber' no es de tipo int pero es un objeto de tipo Integer. Este proceso de convertir tipos de datos primitivos en un objeto se llama boxing. Podrías preguntar cómo es esto posible. Pensemos en cuál es la forma más sencilla de realizar esta tarea. Podemos crear un clase que contiene un solo atributo de tipo int, un constructor que toma un valor de tipo int y lo asigna a nuestro atributo de clase, y algunos métodos para manipular este valor int. Para obtener más información al respecto, consulte este documento .

Vimos cómo el tipo int se puede convertir a Java. ¿Hay alguna forma de convertir otros tipos de datos primitivos en objetos? Sí, Java tiene sus respectivos clase contenedora para diferentes tipos de datos primitivos. Los veremos en la siguiente sección de esta publicación.

Autoboxing

En este punto, sabemos qué es el boxeo. Ahora, comprendamos qué es Autoboxing. cuando el proceso de boxeo lo realiza el compilador sin mencionarlo explícitamente, se llama autoboxing.



Entendamos esto con un ejemplo:

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) } }

Como comentamos anteriormente acepta solo objetos y los tipos de datos primitivos no funcionan. En el programa anterior, no convertimos en tipo a objetos de tipo Integer, pero el programa se ejecuta sin ningún error. ¿Cómo? La respuesta a esta pregunta es que el compilador realizó automáticamente el proceso de boxeo antes de agregar el valor a 'Mylist', de ahí el nombre Autoboxing.

Mylist.add (Integer.valueOf (i))

El compilador agrega la línea de código anterior en nuestro programa.

Nota- En la línea anterior de código, el nombre de clase 'Entero' se menciona antes del método valueOf () ya que valueOf () es un método estático. Para obtener más ejemplos, consulte la docs .

Unboxing y Autounboxing

Vimos como del tipo de datos primitivo se convierten en objetos. Pero esta es solo la mitad de la historia. La otra mitad de la historia es convertir un objeto de una clase contenedora de tipo a su tipo de datos primitivo que se llama desembalaje .

Por ejemplo-

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

Salida- 1

Autounboxing Cuando el proceso de unboxing realizado por el compilador sin mencionarlo explícitamente se denomina Autounboxing.

Por ejemplo-

Número entero = nuevo Entero (20) int num = Número

El código anterior es un ejemplo de autounboxing. En la siguiente sección, aprenderemos sobre las clases contenedoras.

implementación de hashmap en el ejemplo de java

Clases de envoltura

Convertimos en tipo variable intl tipo Integer objeto. Esta clase entera es una clase contenedora. En Java, una clase contenedora está disponible para cada . Estas clases contenedoras nos ayudan a convertir una variable de tipo primitivo al objeto de tipo de clase contenedora respectiva. Los métodos de las clases contenedoras son útiles para manipular los valores.

La siguiente tabla nos informa sobre el tipo de datos primitivo y su respectiva clase contenedora.

declaración if en la consulta SQL
Tipo primitivo Clase de envoltura

booleano

Booleano

adiós

Byte

carbonizarse

Personaje

flotador

Flotador

En t

Entero

largo

Largo

corto

Corto

doble

Doble

Observe las mayúsculas en las clases Wrapper.

Por lo tanto, hemos llegado al final de este artículo sobre 'Autoboxing en Java'. Si desea obtener más información, consulte el por Edureka, una empresa de aprendizaje en línea de confianza. El curso de certificación y capacitación Java J2EE y SOA de Edureka está diseñado para capacitarlo en conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog “autoboxing en Java” y nos comunicaremos con usted lo antes posible.