A linguagem Java possui os tipos de dados primitivos, ou básicos, para armazenar números inteiros, racionais, caracteres, cadeia de caracteres, vetores, matrizes, e constantes.

O uso desses tipos de dados em variáveis e constantes serão visto em Java Básico: Variáves e Constantes.

Os tipos de dados abaixo serão vistos de forma sucinta. Alguns possuem seções específicas em que estudamos um pouco mais afundo e serão vistos ao longo de exemplos no tutorial.

Além dos tipos primitivos, a biblioteca nativa da linguagem possui também uma vasta lista de classes nativas que nos ajudam no desenvolvimento de programas. E serão vistos em futuras atualizações.

Para manipular dados númericos, a linguagem Java fornece os tipos primitivos abaixo:

Tipo Uso Exemplo Seção
int Númerico decimais(base 10) 10, -10 -
float Numéros racionais 1.99, -1.99 -
double Números racionais 1.99, -1.99 -
char caracteres e inteiros 0,'A', -128, 255 -

Os tipos de dados float e double, também são chamados de ponto-flutuante. A diferença entre ambos está ligado a faixa de dados e precisão de casas decimais.

Esse tipos de dados possuem suas classes Wrappers que nos fornecem métodos para manipulação dos dados.

Os tipos de dados derivados, são tipos de dados compostos em outros tipos de dados. A linguagem Java fornece os seguintes tipos de dados:

Tipo Uso Exemplo Seção
Vetor(Array) variáveis 1,2,3,... Visitar
Matriz(Array 2d) matrizes - Visitar
String Textos "um texto" Visitar
Enum Constantes 0,1,2,3 Visitar

Vetor/Matriz:
Os tipos Vetor/Matriz são apelidos para variáveis armazenadas de forma justaposta. Os termos vetor e matriz não são palavras reconhecidas pela linguagem Java sendo apelidos.

String:
O tipo String armazenam caracteres(char) de forma justaposta.

Enum:
O tipo Enum é composto uma ou mais constantes com valores associados.

A linguagem Java não possui suporte aos tipos de dados struct e union suportados pelas linguagens C/C++ e Go.

Os tipos de dados númericos em Java compreendem os tipos int, float e double. O primeiro armazena números com base 10 e os dois últimos armazenam dados de ponto-flutante(casas decimais).

O tipo int é utilizado para armazenar números inteiros positivos e negativos. Possuem um tamanho de 4 bytes em memória e armazena dados no intervalo entre -2.147.483.648 e 2.147.483.647.

Sintaxe
int
Exemplo 1
0,1,10,-10

O tipo int também aceita que um valor hexadecimal ou octal sejam atribuídos. Utiliza-se 0x para indicar que um número é hexadecimal e "0" para indicar octal:

Exemplo 2
016, 0xff

O tipo char é utilizado para armazenar caracteres e possuem um tamanho de 2 byte em memória. Uma sequência de chars formam uma string.

Quando um caracter imprimível é utilizado como valor de atribuição, o mesmo deve estar contido entre (').

Sintaxe
char
Exemplo 3
'a','Z'

O tipo char também aceita que um valor hexadecimal seja atribuído. Utiliza-se 0x para indicar que um número é hexadecimal:

Exemplo 4
017, 0xf0

O tipo double é utilizado para armazenar números(Ponto flutuante) positivos e negativos de com casas decimais. Possuem um tamanho de 8 bytes em memória e armazena dados entre 1.7E-308 até 1.7E+308.

Sintaxe
double
Exemplo 5
12.123456

O tipo float é semelhante ao double, armazena números positivos e negativos de com casas decimais. Possuem um tamanho de 4 bytes em memória e armazenam dados entre 1.175494e-38 e 3.402823e+38.

Sintaxe
float
Exemplo 6
2.500000

Tanto o tipo float quanto o double são utilizados para armazenar números com casas decimais.

A principal diferença é o tamanho em bytes desses dois tipos que proporcionam mais ou menos precisão de seus valores de acordo com os tipos. Abaixo uma pequena tabela básica comparativa.

float double
tamanho: 4 bytes tamanho: 8 bytes
7 dígitos de precisão 15 dígitos de precisão
Suporta 7 dígitos Suporta 15 dígitos

O tipo booleano trabalha com valores true e false. Esses podem ser utilizados nas tomadas de decisão, por exemplo.

Sintaxe: declaração
boolean
Exemplo: conteúdo
true, false

Para a linguagem Java, o tipo de dado String é uma cadeia de caracteres justapostos como pode ser vista uma abstração abaixo.

0 1 2 3 4 5
's' 't' 'r' 'i' 'n' 'g'
Sintaxe: declaração
String
Exemplo: conteúdo
"uma string em java"

Em Java, uma string é mutável o que significa que podemos alterar seus caracteres após a atribuição. Mais informações sobre string pode ser visto em Strings.

O tipo enum é utilizado para criar constantes em cada membro de sua composição possui um valor inteiro associado a cada membro.

Exemplo
enum nome_enum
{
  nome_membro1, //0
  nome_membro2, //1
  nome_membroN; //2
}
            

Para mais informações sobre o tipo de dado enum pode ser visto em sua seção Java > Tipos Derivados: Enum.

Vetor e matriz são tipos de dados derivados que armazenam dados de forma sequencial em memória.

Esses tipos de dados já foram visto em Tutorial C: Vetor e Matriz sendo a leitura recomendada.

Na linguagem Java, assim como em outras linguagens, podemos criar vetores a partir dos tipos de dados estudados primitivos ou objetos. Podemos enxergar um vetor como um local para armazenar várias variáveis de forma sequencial.

Tab. 1: Vetor de int
0 1 2 3 4 5 (...)
1 10 -100 0 2 - -

Vetor e Matriz não são palavras reconhecidas pela linguagem Java, sendo apenas apelidos para o termo array e array 2d.

Os comandos de repetição como for, while, do-while e foreach são utilizados para percorrer o conteúdo de um vetor. Esses comandos podem ser vistos em Java Básico: Comandos

Mais informações sobre Vetor podem ser vistas em sua seção Java > Tipos Derivados: Vetor.

Uma matriz é um vetor de duas dimensões. Sendo assim, seus elementos são armazenados de forma sequencia, porém o acesso a esses elementos é feito utilizando suas linhas e colunas. Uma matriz com as dimensões 3x3 pode ser representada na forma abaixo:

Tab. 2: Matriz de int
L/C 0 1 2
0 10 20 30
1 40 50 60
2 70 80 90

Os comando de repetição como for, while e do-while são utilizados para percorrer o conteúdo de uma matriz. O tipo de dado Ponteiro pode ser utilizado para auxiliar na iteração desse tipo de dado. Esses comandos podem ser vistos em Java:Comandos

Mais informações sobre Matriz pode ser vista em sua seção Matriz.

Por ser linguagem orientada a objeto, Java fornece vários pacotes(packages) que contém classes com funcionalidades prontas. Essas classes, quando instancidas, temos os objetos que são tipos de dados mais complexos quem contem atributos e métodos.

Abaixo, uma pequena lista das classes nativas disponíveis na linguagem Java:

  1. java.lang.Boolean
  2. java.lang.Float
  3. java.lang.Interger
  4. java.lang.String
  5. java.lang.Byte
  6. java.lang.Math
  7. java.lang.Exception
  8. java.lang.StringBuilder
  9. java.lang.Process
  10. java.lang.Thread
  11. java.util.Arrays
  12. java.util.Currency
  13. java.util.Locale

Em Java Básico: Conversão pode ser visto o uso de algumas das classes acima para a conversão de dados.

Nesta parte serão vistos os tipos de dados ponteiro e reference além das palavras reservadas null, void e outros. Mais tipos serão adicionados em futuras atualizações.

A linguagem Java possui um a palavra reservada null para representar o tipo de dado nulo. Utilizado nos tipos de dados referênciados, como objetos, para informar que o recurso não é mais utilizado, ou não iniciado, tendo seus recurso de memória liberados.

Sintaxe
nome_variavel = null;
Exemplo 9
instancia_objeto = null; 

O tipo void, em parte, é um tipo de dado e em outra parte não. Podemos utilizar void para informar que métodos não possuem retorno. O void não pode ser utilizado para declarar variáveis e constantes.

Sintaxe
public void nome_metodo(lista_parametros)
{
  /*corpo omitido*/
} 

O assunto método pode ser conferido em Java > POO: Métodos.

  1. 22/07/2025 - revisão 4 - Correçao em links 'Objetivos'; Remoçao de exemplos Matriz/Vetor; Ajustes pontuais
  2. 23/09/2024 - revisão 3 - Remoção de info. octal para 'char', trecho errado sobre 'boolean'; ajustes gramaticais e outros
  3. 02/09/2024 - revisão 2 - Correção em link de objeto: tipo enum,bool
  4. 06/02/2024 - revisão 1 - correção em navegação, tipo char e erros gramaticais
  5. 04/09/2023 - versão inicial