Embora fosse concebÃvel definir classes para todos os tipos de dados a utilizar por um programa em Java, inclusivamente para os tipos básicos, tal conduziria a ineficiência durante a execução.
Para obviar ao problema, no Java utiliza-se um sistema de tipos hÃbrido: são definidos tipos básicos para cobrir entidades atómicas. Estes tipos semelhantes aos do C e do C++ (embora com algumas restrições, como, por exemplo, as dimensões) permitem tratar eficientemenmte entidades como inteiros ou caracteres.
No entanto, para permitir alguma uniformidade no tratamento dos tipos, a linguagem também define as classes correspondentes aos tipos primitivos e, a partir da versão 1.5, permite a auto-conversão de tipos primitivos para essas classes. As classes correspondentes aos tipos primitivos são designadas wrappers ("envoltórios") e o processo de conversão implÃcita é designado por auto-boxing ("auto-empacotamento").
Os tipos primitivos são os que figuram na seguinte tabela.
Tipo | Dimensão (bits) | MÃnimo | Máximo |
---|---|---|---|
boolean | - | - | - |
char | 16 | Unicode 0 | Unicode 216-1 |
byte | 8 | -128 | +127 |
short | 16 | -215 | +215-1 |
int | 32 | -231 | +231-1 |
long | 64 | -263 | +263-1 |
float | 32 | IEEE 754 | IEEE 754 |
double | 64 | IEEE 754 | IEEE 754 |
void | - | - | - |
As classes correspondentes aos tipos primitivos figuram na seguinte tabela.