Java e Orientação a Objetos
Conceitos fundamentais da linguagem Java e da programação orientada a objetos para estudantes de computação.
Cartões · 50
- Classe
- Molde ou modelo que define a estrutura de dados e os comportamentos comuns a todos os objetos daquele tipo.
- Objeto
- Instância concreta de uma classe que ocupa espaço em memória e possui estado e comportamento próprios.
- Encapsulamento
- Princípio de ocultar o estado interno de um objeto e exigir que todas as interações passem por métodos públicos.
- Herança
- Mecanismo que permite a uma classe reutilizar e estender atributos e métodos de outra classe base.
- Polimorfismo
- Capacidade de objetos de diferentes tipos responderem à mesma mensagem ou chamada de método de maneiras distintas.
- Abstração
- Ato de isolar elementos essenciais de um contexto do mundo real, ignorando detalhes não relevantes para o sistema.
- Sobrecarga (Overloading)
- Definição de múltiplos métodos na mesma classe com o mesmo nome, porém com diferentes assinaturas de parâmetros.
- Sobrescrita (Overriding)
- Redefinição em uma subclasse de um método que já foi fornecido pela sua superclasse com a mesma assinatura.
- Interface
- Contrato abstrato que define quais métodos uma classe deve implementar, sem fornecer a implementação na maioria dos casos.
- Classe Abstrata
- Classe que não pode ser instanciada diretamente e pode conter métodos abstratos e concretos para suas subclasses.
- Modificador 'public'
- Torna uma classe, atributo ou método acessível a partir de qualquer outra classe do projeto.
- Modificador 'private'
- Restringe o acesso de membros apenas à própria classe em que foram declarados.
- Modificador 'protected'
- Permite o acesso de membros por classes do mesmo pacote e por subclasses de qualquer pacote.
- Modificador padrão (package-private)
- Acesso atribuído por omissão que restringe o uso apenas a classes presentes no mesmo pacote.
- Construtor
- Método especial executado no momento da criação de um objeto para inicializar seus atributos fundamentais.
- Palavra-chave 'this'
- Referência à instância atual do objeto em que o método ou construtor está sendo executado.
- Palavra-chave 'super'
- Referência usada para acessar construtores, métodos ou atributos da superclasse imediata.
- Palavra-chave 'static'
- Indica que o membro pertence à classe como um todo, e não a instâncias específicas dela.
- Palavra-chave 'final'
- Torna variáveis imutáveis, impede que métodos sejam sobrescritos e proíbe a extensão de classes.
- Garbage Collector
- Processo automático da JVM que gerencia a memória liberando o espaço alocado para objetos sem referência ativa.
- JVM (Java Virtual Machine)
- Máquina virtual que executa bytecode compilado, garantindo a independência de plataforma do Java.
- JRE (Java Runtime Environment)
- Ambiente de execução que inclui a JVM e as bibliotecas essenciais para rodar programas Java.
- JDK (Java Development Kit)
- Kit completo de desenvolvimento contendo o compilador, ferramentas de depuração e o JRE.
- Bytecode
- Código intermediário gerado pelo compilador Java que pode ser interpretado ou compilado pela JVM.
- Exceção Verificada (Checked Exception)
- Subclasse de Exception que o compilador exige que seja tratada ou declarada com 'throws'.
- Exceção Não Verificada (Unchecked Exception)
- Subclasse de RuntimeException que representa falhas lógicas e não exige tratamento obrigatório pelo compilador.
- Bloco 'try-catch'
- Estrutura usada para tentar executar um bloco de código sujeito a erros e capturar exceções geradas.
- Bloco 'finally'
- Bloco de código que sempre executa após o try e catch, normalmente usado para liberar recursos externos.
- Tipos Primitivos
- Tipos de dados básicos do Java que armazenam valores diretamente na memória, como int, double e boolean.
- Classes Wrapper
- Classes utilitárias que encapsulam valores de tipos primitivos em objetos, como Integer e Double.
- Autoboxing e Unboxing
- Conversão automática feita pelo compilador entre tipos primitivos e suas respectivas classes wrapper.
- String Pool
- Região especial de memória onde literais de texto idênticos são reaproveitados para otimizar desempenho.
- Imutabilidade da String
- Característica que impede que o conteúdo de um objeto String seja modificado após a sua criação.
- StringBuilder
- Classe mutável usada para manipulação eficiente de sequências de caracteres quando não há concorrência.
- Coleção 'List'
- Interface que representa uma sequência ordenada de elementos que permite duplicatas e acesso por índice.
- Coleção 'Set'
- Interface que representa um conjunto matemático de elementos que não admite itens duplicados.
- Coleção 'Map'
- Interface que associa chaves exclusivas a valores específicos, permitindo busca rápida por chave.
- Generics
- Recurso que permite parametrizar tipos em classes e coleções, garantindo segurança de tipos em tempo de compilação.
- Método 'equals()'
- Método herdado de Object usado para verificar a igualdade semântica ou lógica entre dois objetos.
- Método 'hashCode()'
- Gera um valor inteiro numérico associado ao objeto, indispensável para coleções baseadas em hash.
- Composição
- Relacionamento estrutural em que um objeto possui outro como parte essencial de sua existência e ciclo de vida.
- Agregação
- Relacionamento de associação mais fraco onde o objeto dependente pode existir fora do objeto agregador.
- Acoplamento
- Grau de interdependência entre classes ou módulos do sistema; o ideal é que seja o mais baixo possível.
- Coesão
- Medida de quão focadas e relacionadas estão as responsabilidades de uma classe; o ideal é que seja alta.
- Enum (Enumeração)
- Tipo de dado especial usado para definir coleções nomeadas e fixas de constantes imutáveis.
- Lambda Expressions
- Funções anônimas que fornecem sintaxe concisa para implementar interfaces funcionais diretamente no código.
- Interface Funcional
- Interface que possui exatamente um único método abstrato e serve de base para o uso de lambdas.
- Stream API
- Recurso introduzido no Java 8 para processar coleções de dados de forma declarativa e paralelizável.
- Classe 'Optional'
- Contêiner que pode ou não conter um valor não nulo, criado para evitar erros de NullPointerException.
- Thread
- Menor unidade de processamento que pode ser executada de forma concorrente dentro de um programa Java.