2 - Tipos de dados
Tags: java
Published: 2024-06-25 21:42:58

**- Por que os tipos de dados são importantes**

Java é uma linguagem fortemente tipada, ou seja, cada variável e expressão tem um tipo específico, que define o conjunto de valores que a variável pode armazenar e as operações que podem ser realizadas com ela. 

Não há o conceito de uma variável “sem tipo” em Java.

O tipo de um valor determina as operações que podem ser executadas nele.


**- Tipos primitivos da linguagem Java**

Java contém duas categorias gerais de tipos de dados internos: orientados a objetos e não orientados a objetos.
Os tipos orientados a objetos são definidos por classes e será discutido posteriormente.

Os tipos de dados primitivos (também chamados de elementares ou simples) são valores binários comuns.

Java especifica rigorosamente um intervalo e um comportamento para cada tipo primitivo que todas as implementações da Máquina Virtual Java devem suportar. 

A inflexibilidade da linguagem garante a portabilidade. Um int, por exemplo, é igual em todos os ambientes de execução.

**- Inteiros**

Java define quatro tipos inteiros: byte, short, int e long. Todos os tipos inteiros são valores de sinal positivo e negativo.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ro0mc8fyu7tksoc92xle.png)

O tipo inteiro mais usado é int, comumente empregado no controle de laços, indexação de arrays e cálculos de inteiros para fins gerais.

- Exemplo
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r79g45rdhtyymbpilw1b.png)


O menor tipo inteiro é byte e são úteis para trabalhar com dados binários brutos que podem não ser compatíveis com outros tipos inteiros Java (int ou long).

O tipo short cria um inteiro curto e são apropriadas quando não é necessário o intervalo maior oferecido por int.

Char também pode ser considerado um tipo inteiro em Java.

A especificação de Java define uma categoria de tipos integrais, incluindo byte, short, int, long e char.

Esses tipos são chamados de integrais porque contêm valores binários inteiros.

Byte, short, int e long são usados para representar quantidades inteiras numéricas.
Char é usado para representar caracteres.

**- Tipos de ponto flutuante**

Existem dois tipos de ponto flutuante em Java: float e double.

Float tem 32 bits e double tem 64 bits.

Double é mais comum, pois todas as funções matemáticas da biblioteca de classes Java usam valores double.

Por exemplo, o método sqrt() retorna um valor double que é a raiz quadrada do argumento double.

O método sqrt() é chamado como Math.sqrt(), onde Math é a classe padrão que contém o método.

- Exemplo
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pqct2d1w4wm49bkc0ixn.png)

**- Caracteres**

Java usa Unicode para trabalhar com os caracteres. Unicode permite representar todos os caracteres encontrados em todos os idiomas humanos.

Em Java, o tipo char é de 16 bits sem sinal, com um intervalo de 0 a 65.536.

Variáveis de caractere podem ser atribuídas usando aspas simples, como char ch = 'X';.

- Exemplo
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sy3w59ymjgrrjxttk9ro.png)

A saída gerada no programa será:
ch contains X
ch is now Y
ch is now Z


O conjunto de caracteres ASCII de 8 bits padrão é um subconjunto do Unicode (0 a 127).

No programa ch = x. Em seguida é incrementado, resultando no próximo caractere na sequência ASCII (e Unicode). Os valores ASCII (e Unicode) representam as letras com números.

Exemplo: 
https://pt.unicodery.com/005A.html

**- Booleano**

O tipo boolean representa os valores verdadeiro/falso. 

Uma variável ou expressão de tipo boolean terá um desses dois valores.

- Exemplo
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gsr324auo9deolyizu1r.png)

A saída gerada será:
b is false
b is true
This is executed.
10 > 9 is true

Ao exibir um valor booleano usando println(), as palavras "true" ou "false" são utilizadas.

Um valor booleano pode controlar a instrução if diretamente, sem a necessidade de comparação explícita com true.

O resultado de um operador relacional, como "<", é um valor booleano.

A expressão "10 > 9" exibe o valor "true".
Parênteses adicionais em torno de "10 > 9" são necessários porque o operador "+" tem precedência maior que o ">".