[11] Tipos de variáveis: tipos primitivos
Autor: Leitão Maluco | Publicado: 2008-02-28T19:09:00-08:00

Vamos aprender um pouco mais sobre os tipos de variáveis existentes no Java: tipos primitivos e tipos de referência. Porém, neste Post daremos ênfase aos tipos primitivos.Variáveis de tipos primitivosUma vez que uma variável é definida como um tipo primitivo, seu tipo não pode ser alterado.  Isso implica dizer que ao declarar uma variável de tipo primitivo como a variável "velocidade" abaixo como tipo int, ela não pode, dentro do mesmo escopo, ser redefinida para o tipo float, por exemplo:int velocidade;float velocidade;Cada variável de um tipo primitivo armazena apenas um valor por vez do seu tipo. Os tipos primitivos da linguagem Java são: char, byte, short, int, long, float, double e boolean. Veremos a seguir características e um exemplo de uso para cada tipo primitivo:_______________________________________________________charO tipo char é utilizado para armazenar em uma variável caracteres individuais, tais como: 'A', 'G' ou 'U'. Cada caracter a ser atribuído a uma variável do tipo char deve ser escrito entre aspas simples:char letra = 'A';System.out.println("LETRA INICIAL: " + letra);letra = 'E';System.out.println("NOVA LETRA: " + letra);Certamente os valores a serem exibidos após a execução do código acima são:LETRA INICIAL: ANOVA LETRA: EUma variável do tipo char também pode receber entre aspas simples um valor Unicode:char caracterUnicode = '\u0041';System.out.println("Caracter unicode: " + caracterUnicode);E será exibido na tela:Caracter unicode: APois o código 0041 na tabela unicode pertence ao caracter 'A', assim como o código 0030 pertence ao número zero e o código 0032 pertence ao número 2._______________________________________________________byteO tipo byte armazena um valor inteiro de -128 a 127, inclusive:byte pequenoNumero = 30;byte outroNumero = 50;byte soma = pequenoNumero + outroNumero;System.out.println("Soma: " + soma);O valor exibido no console é:Soma: 80_______________________________________________________shortO tipo short armazena um valor de -32.768 a 32.767, inclusive:short valor1 = -1000;short valor2 = 20600;short valor3 = valor2 - valor1;System.out.println("Valor 3: " + valor3);Saída:Valor 3: 19600_______________________________________________________intO tipo primitivo int armazena um valor inteiro entre -2.147.483.648 e 2.147.483.647, inclusive:int idade = 0;int anoNascimento = 2009;int saldoNegativo = -3200;_______________________________________________________longO tipo primitivo long armazena um valor inteiro entre -9.223.372.036.854.775.808 e 9.223.372.036.854.775.807. Para deixar explícito que um valor deve ser interpretado como long, é comum que se digite a letra L, minúscula ou maiúscula:long numeroGrande =  1300333030;long outroNumeroGrande =  1300333030l;long maisUmNumeroGrande =  1300333030L;Todas as variáveis declaradas acima têm o mesmo valor e são do tipo long, porém note que as variáveis "outroNumeroGrande" e "maisUmNumeroGrande" possuem as letras l e L, respectivamente, ao final dos valores atribuídos. O uso da letra L é útil apenas para diferenciar que o valor em questão será armazenado em uma variável do tipo long, e não int, por exemplo. O valor não sofre quaisquer alterações após o uso da letra._______________________________________________________floatUma variável do tipo primitivo float armazena um número real de 32 bits segundo o padrão IEEE 754. Para deixar explícito que o valor em questão é do tipo float, usa-se a letra F ao final do valor.float altura = 1.87f;float peso = 71.5F;float juros = 1.5;O valor não sofre quaisquer alterações após o uso da letra._______________________________________________________doubleO tipo de dado double é ponto-flutuante de dupla precisão de 64 bits segundo o padrão IEEE 754:double superValor = 121313.4;System.out.println("Super valor: " + superValor);O valor exibido é:Super valor: 121313.4_______________________________________________________booleanO tipo boolean - ou booleano - só pode receber dois tipos de valores: true ou false:boolean isOpened = true;System.out.println("IS OPENED (antes): "+ isOpened);boolean flag = false;isOpened = false;System.out.println("IS OPENED (depois): "+ isOpened);System.out.println("flag: "+ flag);A saída exibida será:IS OPENED (antes): trueIS OPENED (depois): falseflag: false_______________________________________________________Cuidado ao tentar atribuir um valor maior do que um tipo de variável pode suportar, como por exemplo:byte valorPequeno = 12340;int valorNaoLong = 2980928320213L;12340 é considerado como valor inteiro, desde já não é possível atribuir tal valor a uma variável do tipo byte, pois o tipo byte suporta valores inteiros entre -128 a 127, apenas.E caso o valor 2980928320213  inão seja seguido pela letra L, o compilador tentará, por padrão, entendê-lo como um valor do tipo int, e como os valores int devem estar entre -2147483648 e 2147483647, o valor 2980928320213 excede esse limite, a compilação falhará e dará a seguinte mensagem:The literal 2980928320213 of type int is out of rangeCuidado também ao tentar atribuir valores que são incompatíveis ao tipo em questão:char letra = 1243f;int number = 1243f;Estas atribuições causam erro de compilação e geram as seguintes mensagens:    Type mismatch: cannot convert from float to char    Type mismatch: cannot convert from float to intOs indicadores de tipos primitivos são palavras-chave, desde então você não pode criar identificadores com o mesmo nome que eles. Como, por exemplo, criar uma variável chamada "int" ou "float". Palavras-chave são palavras reservadas.Vale também ressaltar que os tipos primitivos também podem ser chamados de tipos predefinidos.Bem, neste Post ficamos por aqui. Na próxima postagem aprenderemos sobre os tipos de referência do Java. Um abraço e até logo.