Variáveis e Tipos de Dados

Variáveis são contêineres para armazenar dados. Esta lição cobre variáveis e tipos de dados em Java.

O que é uma Variável

Uma variável é um local de armazenamento na memória que contém dados.

Três Elementos de uma Variável

Elemento Descrição Exemplo
Tipo Que tipo de dados armazenar int, double, String
Nome Como encontrar esta variável age, price, name
Valor Os dados armazenados na variável 25, 9.99, "Alice"

Declarando Variáveis

JAVA
// Declarar primeiro, atribuir depois
int age;
age = 25;

// Declarar e atribuir
int age = 25;

// Declarar múltiplas variáveis do mesmo tipo
int x = 1, y = 2, z = 3;

Regras de Nomenclatura

Regras de Sintaxe (Devem ser Seguidas)

Regra Correto Incorreto
Só pode conter letras, dígitos, sublinhado, $ myVar my-var
Não pode começar com dígito name1 1name
Não pode usar palavras-chave Java myClass class
Diferencia maiúsculas de minúsculas ageAge

Convenções de Nomenclatura (Recomendadas)

Convenção Exemplo Descrição
camelCase myVariableName Variáveis e métodos
Nomes significativos studentAge Evite a, b, temp
Constantes em MAIÚSCULAS MAX_VALUE Separe com sublinhados

Tipos de Dados Primitivos

Java tem 8 tipos de dados primitivos.

Tipos Inteiros

Tipo Tamanho Intervalo Exemplo
byte 1 byte -128 a 127 byte b = 100;
short 2 bytes -32768 a 32767 short s = 1000;
int 4 bytes -2,1 bilhões a 2,1 bilhões int i = 100000;
long 8 bytes Intervalo muito maior long l = 100L;
💡 Use int por padrão. Use long (com sufixo L) quando precisar de um intervalo maior.

Tipos de Ponto Flutuante

Tipo Tamanho Precisão Exemplo
float 4 bytes 6-7 casas decimais float f = 3.14f;
double 8 bytes 15 casas decimais double d = 3.14;
💡 Use double por padrão. Adicione o sufixo f quando precisar de float.

Tipo Caractere

JAVA
char c1 = 'A';      // Caractere único em aspas simples
char c2 = 'B';      // Pode armazenar qualquer caractere
char c3 = 65;       // Também pode usar valores de código ASCII

Tipo Booleano

JAVA
boolean isTrue = true;
boolean isFalse = false;
💡 Nota: Em Java, valores booleanos só podem ser true ou false. Não podem ser representados como 0 ou 1.

Tipos de Dados de Referência

Tudo além dos 8 tipos primitivos é um tipo de referência.

Tipos de Referência Comuns

JAVA
String name = "Alice";        // String
int[] arr = {1, 2, 3};       // Array
Object obj = new Object();    // Object

String

JAVA
// Strings usam aspas duplas
String greeting = "Hello, World!";

// Concatenação de strings
String fullName = "John" + " " + "Doe";

// Comprimento da string
int len = greeting.length();  // 13

Conversão de Tipos

Conversão Automática de Tipos (pequeno → grande)

JAVA
int i = 100;
long l = i;      // int converte automaticamente para long
double d = i;    // int converte automaticamente para double

Conversão Explícita de Tipos (grande → pequeno)

JAVA
double d = 3.14;
int i = (int) d;  // Conversão explícita, resultado é 3 (decimal truncado)

long l = 100;
int i = (int) l;  // Conversão explícita
⚠️ Nota: A conversão explícita pode perder precisão ou causar overflow. Use com cautela.

Exemplo: Conversão de Tipos

JAVA
public class TypeConversion {
    public static void main(String[] args) {
        // Conversão automática de tipos
        int a = 100;
        long b = a;
        double c = a;
        System.out.println("int: " + a);      // 100
        System.out.println("long: " + b);      // 100
        System.out.println("double: " + c);    // 100.0
        
        // Conversão explícita de tipos
        double d = 3.99;
        int e = (int) d;
        System.out.println("double: " + d);    // 3.99
        System.out.println("int: " + e);       // 3 (truncado, não arredondado)
    }
}
▶ Experimente

Constantes final

Use a palavra-chave final para definir constantes. Uma vez atribuído, seu valor não pode ser alterado.

JAVA
final double PI = 3.14159;
final String APP_NAME = "MyApp";
final int MAX_SIZE = 100;

// PI = 3.14;  // Erro! Constantes não podem ser modificadas
💡 Convenção de nomenclatura: Nomes de constantes devem estar em maiúsculas, separados por sublinhados.

Inferência de Tipo de Variável Local var

Java 10 introduziu a palavra-chave var, que permite inferência automática de tipo para variáveis locais.

JAVA
// Abordagem tradicional
String name = "Alice";
ArrayList<String> list = new ArrayList<String>();

// Usando var
var name = "Alice";           // Inferido automaticamente como String
var list = new ArrayList<String>();  // Inferido automaticamente como ArrayList<String>
⚠️ Nota: var só pode ser usado para variáveis locais, não para variáveis de membro de classe ou parâmetros de método.

❓ Perguntas Frequentes

P: Qual é a diferença entre int e Integer? R: int é um tipo primitivo, Integer é uma classe wrapper (tipo de referência). Integer pode ser null, int não pode.

P: Como escolher entre float e double? R: Geralmente use double para maior precisão. Use float apenas quando precisar economizar memória ou processar grandes quantidades de dados de ponto flutuante.

P: String é um tipo primitivo? R: Não. String é um tipo de referência, mas o Java tem suporte especial para ela, permitindo atribuição direta com literais de string.

📖 Resumo

📝 Exercícios

  1. Prática com variáveis: Defina variáveis para armazenar seu nome, idade, altura e peso, depois imprima-as
  2. Conversão de tipos: Converta o valor double 3.14 para int e observe o resultado; converta o valor int 100 para double e observe o resultado
  3. Prática com constantes: Defina uma constante PI para a constante matemática π, e calcule a área de um círculo com raio 5

Próxima Lição

Na próxima lição, aprenderemos sobre Operadores — entendendo várias operações em Java.

100%