Diferencia entre tipos de datos Long e Int en Java

Bishal Awasthi 12 octubre 2023
  1. Los tipos de datos int y long en Java
  2. Las clases contenedoras Integer y Long en Java
  3. Diferencias entre int y Integer y long y Long en Java
Diferencia entre tipos de datos Long e Int en Java

Este artículo discutirá las diferencias entre los tipos de datos int y long en Java y explicará las clases contenedoras Integer y Long. Entenderemos las diferencias entre estos tipos de datos y las clases contenedoras y podremos decidir cuál usar según el escenario.

Los tipos de datos int y long en Java

El tipo de datos int es un tipo de datos primitivo en Java que almacena un número entero. Significa que int especifica el tamaño y tipo del valor de la variable. Pero no puede llamar a ningún método. El tamaño de int es de 4 bytes. Puede almacenar los valores de -2,147,483,648 a 2,147,483,647.

El tipo de datos long es también otro tipo de datos primitivo en Java con 8 bytes. Tiene un rango más amplio que int para almacenar un número entero. El tipo de datos long se utiliza para contener el número entero más grande que int no puede contener. Puede almacenar los valores de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807.

Por ejemplo, cree una variable num1 con el tipo de datos int y num3 con el tipo de datos long. Asigne un valor de 100 a num1 y 15000000000L a num3. Imprime las variables en la consola. Nuevamente, cree otra variable, num2 con el mismo tipo de datos y asigne un valor de 2147483648. Luego, imprima la variable num2. Tenga en cuenta que estas líneas de código deben escribirse dentro del método main dentro de una clase.

El primer ejemplo de código se ejecuta con éxito, pero el segundo ejemplo presenta un error. Es porque el valor 2147483648 excede el rango para el tipo de datos int. Escribimos L después del valor del tipo de datos long para denotar un valor long.

Código de ejemplo:

int num1 = 100;
long num3 = 15000000000L;
System.out.println(num1);
System.out.println(num3);

Producción:

100 15000000000

Código de ejemplo:

int num2 = 2147483648;
System.out.println(num2);

Producción :

Main.java:3: error: integer number too large
 int num2 = 2147483648;
 ^
1 error

Las clases contenedoras Integer y Long en Java

Una clase contenedora es un tipo específico de clase cuyos objetos pueden almacenar los tipos de datos primitivos. Discutiremos las clases contenedoras Integer y Long. Podemos crear el objeto contenedor a partir de la clase contenedora y nos permite usar diferentes métodos asociados con el objeto.

Por ejemplo, cree un objeto de clase contenedora Integer myInt y asigne un valor de 50. Cree otro objeto myLong de la clase contenedora Long y asigne un valor 326162165161616161. Imprima las variables myInt y myLong. A continuación, cree dos objetos de la clase contenedora String como myString1 y myString2. Utilice el método toString() con cada uno de los objetos myInt y myLong. Finalmente, imprima la longitud de los objetos myString1 y myString2 llamando al método length().

En el siguiente ejemplo, creamos objetos a partir de las clases contenedoras Integer, Long y String. Llamamos a los métodos como toString() y length() con los objetos. El método toString() convierte los valores en una cadena, y podemos usar el método length() para calcular su longitud. Si intentamos acceder a estos métodos desde el tipo de datos primitivo, no podemos hacerlo. Por lo tanto, las clases contenedoras nos permiten crear los objetos contenedores para usar los métodos para varias operaciones.

Código de ejemplo:

Integer myInt = 50;
Long myLong = 326162165161616161L;

System.out.println(myInt);
System.out.println(myLong);

String myString1 = myInt.toString();
System.out.println(myString1.length());

String myString2 = myLong.toString();
System.out.println(myString2.length());

Producción :

50
326162165161616161
2
18

Diferencias entre int y Integer y long y Long en Java

La principal diferencia entre int o long y Integer y Long es que los tipos de datos son tipos primitivos mientras que las clases contenedoras son tipos no primitivos. Un tipo de datos primitivo tiene un valor específico, mientras que los objetos de la clase contenedora son solo los indicadores de la ubicación de los datos almacenados.

Integer myInt = new Integer(5);
int num = 5

El objeto myInt de arriba es solo un puntero a la ubicación de los datos 5. La memoria donde se almacena el objeto myInt contiene la dirección de memoria de la ubicación del valor 5. Es solo una referencia a la ubicación del valor. Mientras tanto, la memoria donde se almacena la variable num contiene el valor 5.

Este concepto se puede visualizar con el valor null. Podemos establecer el objeto myInt con un valor nulo, pero no podemos hacer lo mismo con la variable num. Un objeto puede hacer referencia a una dirección nula porque los objetos son tipos de referencia. El tipo de datos int no puede contener un valor nulo porque int es primitivo y no puede hacer referencia. Entonces, cuando asignamos null a un objeto, sale como nulo, pero cuando lo asignamos a un tipo int, se arrojará un error.

Código de ejemplo:

Integer myInt = null;
System.out.println(myInt);

Producción :

null

Código de ejemplo:

int num = null;
System.out.println(myInt);

Producción :

Main.java:6: error: incompatible types: <null> cannot be converted to int
int num = null;
 ^
1 error

Artículo relacionado - Java Long

Artículo relacionado - Java Integer