Em Java, existem oito tipos de dados pri­mi­ti­vos que têm um tamanho fixo e um intervalo de valores definido. Eles são usados para criar variáveis e atribuir-lhes números, ca­rac­te­res ou valores lógicos in­di­vi­du­ais. Os oito pri­mi­ti­vos de Java são boolean, byte, chat, double, float, int, long e short.

O que são os pri­mi­ti­vos Java?

Tal como noutras lin­gua­gens de pro­gra­ma­ção, também existem di­fe­ren­tes tipos de dados Java. O Java define dois tipos di­fe­ren­tes: os tipos de re­fe­rên­cia são objetos que podem ser definidos li­vre­mente (como strings, matrizes, classes ou in­ter­fa­ces). Também existem tipos de dados que, em Java, são de­no­mi­na­dos «pri­mi­ti­vos». Estes têm um tamanho fixo que é idêntico em todas as pla­ta­for­mas. Todos têm a sua própria classe de en­cap­su­la­mento, são in­te­gra­dos de forma in­va­riá­vel e têm um intervalo de valores fixo. Os pri­mi­ti­vos Java são uti­li­za­dos para criar variáveis que contêm números, ca­rac­te­res ou valores lógicos in­di­vi­du­ais.

Em Java, existem oito tipos di­fe­ren­tes de dados pri­mi­ti­vos, que são tão ele­men­ta­res que a sua re­pre­sen­ta­ção está fir­me­mente ancorada na linguagem de pro­gra­ma­ção. Eles diferem prin­ci­pal­mente nos valores que podem armazenar. O que todos têm em comum é que contêm apenas um único valor. Como as suas res­pe­ti­vas áreas de aplicação são par­ci­al­mente se­me­lhan­tes, os pri­mi­ti­vos em Java são divididos em quatro ca­te­go­rias:

  • Tipo de dados lógico (booleano)
  • Tipo de dados inteiros (byte, short, int e long)
  • Dados de ponto flutuante (float e double)
  • Tipo de dados de ca­rac­te­res (char)

Como são ar­ma­ze­na­dos di­re­ta­mente na pilha, o seu tamanho res­pec­tivo pode ter uma im­por­tân­cia decisiva. Mais adiante, apro­fun­da­re­mos este tema. Os tipos de dados pri­mi­ti­vos também são muito im­por­tan­tes porque Java é uma linguagem tipada es­ta­ti­ca­mente. Isso significa que, quando se cria um programa, o tipo de dados de uma variável já deve ser conhecido e definido. Só então o código pode ser executado sem mensagens de erro. Estes são os pri­mi­ti­vos de Java:

Tipo de dado Tamanho Intervalo de valores Valor pre­de­fi­nido Classe de en­cap­su­la­mento
boolean 1 bit ver­da­deiro ou falso falso java.lang.Boolean
byte 8 bits -128 a 127 0 java.lang.Byte
short 16 bits -32768 a 32767 0 java.lang.Short
int 32 bits -2147483648 a 2147483647 0 java.lang.Integer
long 64 bits -9223372036854775808 a 9223372036854775807 0 java.lang.Long
float 32 bits até sete casas decimais 0,0 java.lang.Float
double 64 bits até 16 casas decimais 0,0 java.lang.Double
char 16 bits **’\u0000’ (também 0) a ‘\uffff’ (equi­va­lente a 65535) ‘\u0000’ java.lang.Character

boolean

O Java Boolean também é conhecido como valor de verdade. É o mais simples de todos os pri­mi­ti­vos em Java, pois reconhece apenas dois valores possíveis: “true” ou “false”. É utilizado quando é ne­ces­sá­rio um operando lógico e, portanto, pertence ex­clu­si­va­mente ao grupo dos tipos de dados lógicos. Nas ex­pres­sões, os seus dois valores possíveis ge­ral­mente re­pre­sen­tam uma condição que é cumprida (true) ou não (false). Se não for atribuído um valor a um booleano, ele é au­to­ma­ti­ca­mente falso. O booleano pode ser utilizado com ope­ra­do­res Java como AND e OR. A atri­bui­ção funciona de acordo com o seguinte princípio:

public class Main { 
public static void main(String[] args) { 
boolean x = true; 
System.out.println(x); 
} 
}
java

Uma saída com o comando Java System.out.prinln é a seguinte:

true
java

byte

O byte é a opção mais pequena dentro da categoria de tipos de dados inteiros. Tem um intervalo de valores muito limitado, que vai de -128 a 127. No entanto, também requer apenas 8 bits de memória. Deve o seu nome ao facto de 8 bits cor­res­pon­de­rem a um byte. Se precisar apenas de opções de valores muito limitados, pode declarar um byte da seguinte forma:

public class Main { 
public static void main(String[] args) { 
byte x = 101; 
System.out.println(x); 
} 
}
java

O resultado seria:

101
java

short

O short é duas vezes maior que o byte, mas também é um dos tipos pri­mi­ti­vos Java menos usados. No entanto, se o byte for muito pequeno e o int for muito grande, pode usar este tipo de dado integral. É declarado da seguinte forma:

public class Main { 
public static void main(String[] args) { 
short x = -27412; 
System.out.println(x); 
} 
}
java

O resultado é o seguinte:

-27412
java

int

O int é o tipo de dado integral mais utilizado. Tem um intervalo de valores muito amplo e, ao mesmo tempo, é re­la­ti­va­mente eficiente em termos de espaço ocupado. O valor de com­ple­mento a dois é utilizado em muitos casos para apli­ca­ções avançadas. Pode utilizá-lo desta forma:

public class Main { 
public static void main(String[] args) { 
int x = 14; 
int y = 3; 
int z = x + y; 
System.out.println(x + " + " + y + " = " + z); 
} 
}
java

Este seria o resultado:

14 + 3 = 17
java

longo

O long é uma extensão do int e pode conter números ainda maiores. Na maioria dos casos, o int será su­fi­ci­ente, mas se desejar declarar um long, pode fazê-lo da seguinte forma:

public class Main { 
public static void main(String[] args) { 
long x = 47; 
System.out.println(x); 
} 
}
java

Este seria o resultado:

47
java

float

Se quiser re­pre­sen­tar sub­con­jun­tos de números racionais, existem dois pri­mi­ti­vos em Java para esse fim. float é o menor dos dois tipos de dados de ponto flutuante e requer 32 bits. Pode mostrar até sete casas decimais. No entanto, não é muito preciso e, portanto, é pouco utilizado. Se ainda assim precisar dele, declare-o da seguinte forma:

public class Main { 
public static void main(String[] args) { 
float x = 7.22f; 
System.out.println(x); 
} 
}
java

Insira um «f» minúsculo ou maiúsculo após o número para indicar ao com­pi­la­dor que se trata de um float e não de um double. A letra não é exibida na saída:

7.22
java

duplo

O segundo tipo de dados de ponto flutuante é double. Embora seja muito mais preciso do que float, não fornece re­sul­ta­dos to­tal­mente exatos. Uma al­ter­na­tiva é a classe Big­De­ci­mal. Se double for su­fi­ci­ente para si, aqui está um exemplo de código apro­pri­ado:

public class Main { 
public static void main(String[] args) { 
double x = 7.2252; 
System.out.println(x); 
} 
}
java

Portanto, pode dispensar o dígito adicional. Este é o resultado:

7.2252
java

char

O tipo char é utilizado para re­pre­sen­tar um caractere em Unicode. Este abrange de ‘\u0000’ a ‘\uffff’, ou seja, de 0 a 65535. Desta forma, o tipo de dados char pode re­pre­sen­tar quase todos os ca­rac­te­res europeus e asiáticos. Cada um destes ca­rac­te­res ocupa 16 bits de memória. Os valores deste tipo primitivo de Java são colocados entre aspas simples. O código ficaria assim:

public class Main { 
public static void main(String[] args) { 
char x = '&'; 
System.out.println(x); 
} 
}
java

Você obterá este resultado:

&
java
Ir para o menu principal