2.3 Tipos primitivos
Vimos que é possível representar um número com ponto flutuante utilizando o tipo double, mas existem diversos outros tipos para representar os diferentes valores com que trabalhamos no dia a dia.
Para representar um número inteiro, por exemplo, podemos utilizar os tipos byte, short, int ou long. Isso mesmo, o código a seguir compila com qualquer um desses tipos:
byte inteiro1 = 10; short inteiro2 = 10; int inteiro3 = 10; long inteiro4 = 10;
Mas, afinal, quando eu devo utilizar cada um desses? A grande diferença está no tamanho de cada um desses tipos. Por exemplo, um short suporta até 2 bytes, enquanto um long suporta 8 bytes.
Muito diferente de antigamente, hoje não há uma preocupação tão grande em economizar bytes na declaração de suas variáveis. Você raramente verá um programador utilizando um short para guardar um número pequeno,
no lugar de usar logo um int. Mas claro, conhecer os diferentes tipos e a capacidade de cada um deles é essencial para um bom programador.
Esses são os possíveis tipos primitivos da linguagem Java:
Um detalhe simples, porém muito importante, sobre os tipos primitivos é que, quando você atribui um valor para eles (utilizando o operador =), este valor será copiado para a sua variável. Por exemplo, repare no seguinte código:
int numero ;
int outroNumeroigual numero; numero numero + 5;
System.out.println(numero); System.out.println(outroNumeroigual);Neste caso, com certeza o valor da variável numero no momento em que for impressa será 9, mas e quanto ao outroNumeroIgual? Repare que ela recebe numero e seu valor foi alterado logo em seguida.
Execute esse código e você perceberá que o outroNumeroIgual continuará como valor 4, pois este erao valor da variável numero no momento da atribuição. Ou seja, a variável outroNumeroIgual guardou uma cópia do valor, e não uma referência a ela ou algo do tipo.
Tipos não primitivos
Logo conheceremos outros tipos (não primitivos) da linguagem Java, mas desde já repare que um texto, assim como qualquer outro valor, também tem um tipo! Esse tipo é conhecido por String.
Você poderia, no lugar de fazer:
System.out.println("Eu sou uma String");