- 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.
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
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
- 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
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
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 ">".