JAVA
Resumo para Concurso Banco do Brasil 2026
1. Fundamentos da Linguagem Java
1.1 Características da Linguagem
• Orientada a objetos: herança, polimorfismo, encapsulamento e abstração
• Independente de plataforma: bytecode executado na JVM (Java Virtual Machine)
• Fortemente tipada: tipos devem ser declarados explicitamente
• Gerenciamento automático de memória: Garbage Collector
• Multithreading: suporte nativo para programação concorrente
1.2 Tipos de Dados
Tipos Primitivos:
• byte (8 bits), short (16 bits), int (32 bits), long (64 bits)
• float (32 bits), double (64 bits)
• char (16 bits Unicode), boolean (true/false)
Tipos de Referência:
• Classes, Interfaces, Arrays, Enums
• String (imutável, pool de strings)
2. Programação Orientada a Objetos
2.1 Classes e Objetos
• Classe: blueprint para criar objetos
• Atributos: variáveis de instância ou de classe (static)
• Métodos: comportamentos da classe (podem ser static)
• Construtores: inicializam objetos (mesmo nome da classe, sem retorno)
• Modificadores de acesso: public, private, protected, default (package)
2.2 Herança
• Palavra-chave extends: subclasse herda de superclasse
• Java não suporta herança múltipla de classes
• super: referencia a superclasse (construtor ou métodos)
• Override: sobrescrita de métodos (@Override annotation)
2.3 Polimorfismo
• Sobrecarga (overload): mesmo nome, parâmetros diferentes
• Sobrescrita (override): redefinição de método herdado
• Polimorfismo de runtime: ligação dinâmica de métodos
2.4 Encapsulamento
• Atributos privados com getters e setters
• Oculta implementação interna, expõe apenas interface pública
2.5 Abstração
• Classes abstratas: abstract class, não podem ser instanciadas
• Métodos abstratos: sem implementação, devem ser implementados nas
subclasses
• Interfaces: contrato de métodos (todos públicos e abstratos por padrão)
3. Recursos Avançados
3.1 Interfaces
• Interface: contrato que define métodos sem implementação
• Classe implementa interface com implements (múltiplas permitidas)
• Métodos default (Java 8+): implementação padrão em interfaces
• Métodos static em interfaces (Java 8+)
3.2 Collections Framework
List:
• ArrayList: array dinâmico, acesso rápido por índice
• LinkedList: lista duplamente encadeada, inserção/remoção rápidas
Set:
• HashSet: não ordenado, sem duplicatas, baseado em hash
• TreeSet: ordenado, implementa NavigableSet
Map:
• HashMap: chave-valor, não ordenado, permite null
• TreeMap: ordenado por chave
3.3 Exceções
• Checked exceptions: verificadas em tempo de compilação (IOException)
• Unchecked exceptions: RuntimeException e subclasses
• try-catch-finally: tratamento de exceções
• try-with-resources: fecha recursos automaticamente (AutoCloseable)
• throws: declara exceções que o método pode lançar
3.4 Generics
• Parametrização de tipos: List<String>, Map<K,V>
• Type safety em tempo de compilação
• Wildcards: ? extends T (upper bound), ? super T (lower bound)
• Type erasure: informação de tipo removida em runtime
4. Java 8+ Features
4.1 Lambda Expressions
• Sintaxe concisa: (params) -> expression
• Functional interfaces: interface com único método abstrato
(@FunctionalInterface)
• Usadas com Streams, Collections, eventos
4.2 Stream API
• Processamento funcional de coleções
• Operações intermediárias: filter, map, sorted (lazy evaluation)
• Operações terminais: collect, forEach, reduce, count
• Parallel streams: processamento paralelo com parallelStream()
4.3 Optional
• Container para valor que pode ser nulo
• Evita NullPointerException
• Métodos: isPresent(), orElse(), orElseThrow(), map(), flatMap()
4.4 Date and Time API
• [Link] package (Java 8+)
• LocalDate, LocalTime, LocalDateTime: sem timezone
• ZonedDateTime: com timezone
• Imutáveis e thread-safe
5. Conceitos Importantes
5.1 Multithreading
• Thread: unidade de execução dentro de um processo
• Criar threads: extends Thread ou implements Runnable
• Sincronização: synchronized keyword, locks
• ExecutorService: gerenciamento de pool de threads
5.2 JDBC (Java Database Connectivity)
• API para conexão com bancos de dados
• DriverManager, Connection, Statement, ResultSet
• PreparedStatement: evita SQL injection
• Transações: commit(), rollback(), autoCommit
5.3 Serialização
• Conversão de objeto para stream de bytes
• Interface Serializable (marker interface)
• ObjectOutputStream, ObjectInputStream
• serialVersionUID: controle de versão
5.4 Anotações (Annotations)
• Metadados sobre código: @Override, @Deprecated, @SuppressWarnings
• Anotações customizadas: @interface
• Reflection: examinar/modificar código em runtime
6. Boas Práticas
• Princípios SOLID: Single Responsibility, Open/Closed, Liskov Substitution,
Interface Segregation, Dependency Inversion
• Design Patterns: Singleton, Factory, Builder, Observer, Strategy, etc.
• Clean Code: nomes descritivos, métodos pequenos, evitar duplicação
• Tratamento adequado de exceções: não silenciar erros
• Testes unitários: JUnit, Mockito
• Documentação: Javadoc para APIs públicas
Material de estudo - Concurso Banco do Brasil 2026