Tipos primitivos

São tipos de dados que permitem criar variáveis que não são referência a objetos.
  • int - inteiro de 4 bytes com sinal.
  • short - inteiro de 2 bytes com sinal.
  • long - inteiro de 8 bytes com sinal.
  • byte - inteiro de 1 byte com sinal. (armazena valores de -127 a +128)
  • char - 2 bytes - Pode trabalhar com a tabela de caracteres UNICODE ou ASCII. Também pode ser usado como um inteiro sem sinal.
  • float - ponto flutuante de precisão simples (4 bytes).
  • double -ponto flutuante de precisão dupla (8 bytes).
  • boolean - 1 byte para armazenar "true" ou "false".

Importante: Strings em Java não são variáveis de um tipo primitivo, são instâncias da classe String. Para saber mais sobre strings em Java, clique aqui.

Variáveis de valor e referência

Em relação ao conteúdo de uma variável, podemos dividir as variáveis do Java em dois grupos: Variáveis de valor e variáveis de referência.

As variáveis de valor estão sempre associadas a algum tipo primitivo e podem armazenar internamente um valor desse tipo. Estas variáveis já nascem prontas para uso, uma vez que foram declaradas já podem receber valores e participar de expressões ou atribuições.

Já as variáveis de referência (também chamadas de variáveis de instância) armazenam uma referência a um objeto de alguma classe, então estão sempre associadas a uma classe. O que é importante notar é que os objetos não ficam armazenados dentro das variáveis, eles estão na memória, o que estas variáveis armazenam é uma referência à posição de memória que o objeto ocupa, ou seja, estas variáveis são na verdade ponteiros e armazenam endereços de memória. Por consequência, uma variável de referência precisa receber uma referência válida antes que possa ser efetivamente usada como uma referência a um objeto, não basta apenas ser declarada.

É fácil saber se uma variável é de valor ou referência. Variáveis de valor só podem ser de tipos primitivos (listados acima). Qualquer outro tipo é variável de referência.

Links recomendados: