Diferencia entre tipos de datos Long e Int en Java
-
Los tipos de datos
int
ylong
en Java -
Las clases contenedoras
Integer
yLong
en Java -
Diferencias entre
int
yInteger
ylong
yLong
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
- Crear Unsigned Long en Java
- Convertir lang en double en Java
- Cómo convertir una cadena en larga en Java