Diferença entre tipos de dados longos e internos em Java

Bishal Awasthi 12 outubro 2023
  1. os tipos de dados int e long em Java
  2. as classes Wrapper Integer e Long em Java
  3. Diferenças entre int e Integer E long e Long em Java
Diferença entre tipos de dados longos e internos em Java

Este artigo discutirá as diferenças entre os tipos de dados int e long em Java e explicará as classes de wrapper Integer e Long. Entenderemos as diferenças entre esses tipos de dados e as classes wrapper e poderemos decidir qual usar de acordo com o cenário.

os tipos de dados int e long em Java

O tipo de dados int é um tipo de dados primitivo em Java que armazena um número inteiro. Isso significa que int especifica o tamanho e o tipo do valor da variável. Mas, ele não pode chamar nenhum método. O tamanho de int é de 4 bytes. Ele pode armazenar os valores de -2,147,483,648 a 2,147,483,647.

O tipo de dados long também é outro tipo de dados primitivo em Java com 8 bytes. Possui um intervalo mais amplo do que int para armazenar um número inteiro. O tipo de dados long é usado para conter o número inteiro maior que int não pode conter. Ele pode armazenar os valores de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807.

Por exemplo, crie uma variável num1 com o tipo de dados int e num3 com o tipo de dados long. Atribua um valor de 100 a num1 e 15000000000L a num3. Imprima as variáveis ​​no console. Novamente, crie outra variável, num2 com o mesmo tipo de dados e atribua um valor de 2147483648. Em seguida, imprima a variável num2. Observe que essas linhas de código devem ser escritas dentro do método main dentro de uma classe.

O primeiro exemplo de código é executado com êxito, mas o segundo exemplo apresenta um erro. É porque o valor 2147483648 excede o intervalo para o tipo de dados int. Escrevemos L após o valor do tipo de dados long para denotar um valor long.

Código de exemplo:

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

Produção:

100 15000000000

Código de exemplo:

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

Produção:

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

as classes Wrapper Integer e Long em Java

Uma classe wrapper é um tipo específico de classe cujos objetos podem armazenar os tipos de dados primitivos. Discutiremos as classes de wrapper Integer e Long. Podemos criar o objeto wrapper a partir da classe wrapper e isso nos permite usar diferentes métodos associados ao objeto.

Por exemplo, crie um objeto da classe wrapper Integer myInt e atribua um valor de 50. Crie outro objeto myLong da classe wrapper Long e atribua um valor 326162165161616161. Imprima as variáveis ​​myInt e myLong. Em seguida, crie dois objetos da classe de wrapper String como myString1 e myString2. Use o método toString() com cada um dos objetos myInt e myLong. Finalmente, imprima o comprimento dos objetos myString1 e myString2 chamando o método length().

No exemplo abaixo, criamos objetos das classes wrapper Integer, Long e String. Chamamos métodos como toString() e length() com os objetos. O método toString() converte os valores em uma string e podemos usar o método length() para calcular seu comprimento. Se tentarmos acessar esses métodos a partir do tipo de dados primitivo, não conseguiremos. Portanto, as classes de invólucro nos permitem criar os objetos de invólucro para usar os métodos para várias operações.

Código de exemplo:

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());

Produção:

50
326162165161616161
2
18

Diferenças entre int e Integer E long e Long em Java

A principal diferença entre int ou long e Integer e Long é que os tipos de dados são tipos primitivos, enquanto as classes wrapper são tipos não primitivos. Um tipo de dado primitivo contém um valor específico, enquanto os objetos da classe wrapper são apenas os indicadores para a localização dos dados armazenados.

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

O objeto myInt acima é apenas um ponteiro para a localização dos dados 5. A memória onde o objeto myInt está armazenado contém o endereço de memória da localização do valor 5. É apenas uma referência à localização do valor. Enquanto isso, a memória onde a variável num está armazenada contém o valor 5.

Este conceito pode ser visualizado com o valor null. Podemos definir o objeto myInt com um valor nulo, mas não podemos fazer o mesmo com a variável num. Um objeto pode se referir a um endereço nulo porque os objetos são tipos de referência. O tipo de dados int não pode conter um valor nulo porque int é primitivo e não pode fazer referência. Portanto, quando atribuímos null a um objeto, ele é gerado como nulo, mas quando o atribuímos a um tipo int, um erro é gerado.

Código de exemplo:

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

Produção:

null

Código de exemplo:

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

Produção:

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

Artigo relacionado - Java Long

Artigo relacionado - Java Integer