Tipos de dados primitivos com Java
Tags: java, webdev, beginners, braziliandevs
Published: 2023-08-23 11:38:41

Java é uma das linguagens de programação mais utilizadas do mundo, conhecida por sua robustez, versatilidade e uso ao longo da história da tecnologia. Uma parte fundamental da programação em geral é o entendimento dos tipos de dados, que formam a base da programação e são utilizados para armazenar informações e realizar operações.

Vamos conhecer um pouco de cada tipo de dado primitivo mais utilizado na linguagem Java?

---

## **Linguagem estaticamente tipada**

O Java é uma linguagem de programação *estaticamente tipada.* Isso significa que a pessoa programadora precisa declarar explicitamente a variável antes que ela possa ser usada. Essa checagem do tipo é feita em tempo de compilação no caso do Java, que é uma linguagem compilada.

No exemplo abaixo eu estou *tipando* a variável (int), dando um *nome* para ela (numero) e já dizendo qual o *conteúdo* (123).

```java
int numero = 123;
```

Temos então, os tipos de dados *primitivos* e os tipos de dados de *referência*.

---

## **Tipos de dados primitivos**

Os tipos de dados primitivos são os tipos mais simples mas comumente utilizados para representar valores individuais, o Java possui 8 tipos primitivos:

- **BYTE**: Representa um inteiro de **8 bits**. Isso significa que ele guarda do número -128 ao 127 (inclusive). Costuma ser utilizado para economizar memoria quando sabemos que o valor guardado nessa variável vai ser 'pequeno'.

```java
byte numero = -10;
byte outroNumero = 109;
```

- **SHORT**: É um tipo de dado inteiro de **16 bits**. Seu valor mínimo é -32.768 e máximo é 32.767. Assim como no short, você também pode utilizar para economizar memoria nos casos em que se aplica.

```java
short ano = 2023;
short quantidade = -30000;
```

- **INT**: O tipo mais comum para representar valores simples. Representa um inteiro de **32 bits** variando de -2.174.483.648 até 2.147.483.647.

```java
int distancia = 565899;
int valor = -878595442
```

- **LONG**: É um inteiro bem grande de **64 bits**, tem um intervalo que vai de -2^63 até (2^63)-1. É importante perceber que deve ser usado com relativa cautela uma vez que seu tamanho ocupa mais espaço na memoria que o tipo int. Na maioria dos casos o inteiro de 32 bits já é suficiente para as operações. No exemplo abaixo, observe o L ao final do valor, isso indica explicitamente que é valor é um *long*
    
```java
long populacaoMundial = 7900000000L;
long minimo = -9223372036854775808L;
```

- **FLOAT**: É usado para representar números de ponto flutuante com precisão simples. Ele ocupa 32 bits na memoria e fornece cerca de 7 dígitos de precisão decimal. É extremamente importante notar que, por conta da precisão baixa nos números depois da virgula o float não deve ser usado pra representar valores monetários em cenários reais. Repare no uso do f ao final do valor para representar o float.

```java
float altura = 1.70f;
float temperatura = -3.14f;
```

- **DOUBLE**: Representa um ponto flutuante de tamanho 64 bits mas ainda assim não é recomendado para valores monetários. Para isso, a [documentação do Java](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html) recomenda o uso a classe *java.math.BigDecimal*. Para valores decimais, esse tipo double costuma ser a escolha padrão das pessoas desenvolvedoras.

```java
double pi = 3.141592653589793;
double micrometro = 0.000001;
```

- **BOOLEAN**: O tipo booleano tem apenas dois valores possíveis: **true ou false**. A melhor maneira de usar esse tipo é em checagens simples de verdadeiro ou falso.

```java
boolean status = true;
boolean fazSol = false;
```

- **CHAR**: Representa um único caractere Unicode que pode incluir letras, números, símbolos e caracteres especiais. No exemplo abaixo podemos ver que é possível utilizar a versão em Unicode do caractere que queremos representar. Sua implementação é feita com aspas simples depois do símbolo de igual. Também é possível realizar 'contas' com o tipo char.

```java
char letra = 'A';
char simbolo = '\u03A9';
char soma = (char)(letra + 1); //O resultado aqui será 'B'
```

Esses tipos de dados primitivos são essenciais em Java e qualquer outra linguagem. São usados em uma variedade de situações para armazenar diferentes tipos de informações e cálculos. Ao entender cada um e como usá-los, você estará preparado para desenvolver qualquer código que surgir.