Java
Java
Java
○ Classes static: Podem ser usadas sem uma instância da classe externa.
1. Fundamentos da Linguagem
● Tipos de dados, variáveis, operadores, loops (for, while), condicionais (if, switch).
3. Coleções (Collections)
● Conhecimento de List, Set, Map, Queue.
4. Tratamento de Exceções
● Usar try-catch, finally, e exceções customizadas.
5. Threads e Concorrência
● Noções básicas sobre Thread, Runnable, synchronized, e o pacote java.util.concurrent.
6. Java 8+ Features
● Lambdas e Streams: Processamento funcional e eficiente de dados.
○ Map e Filter
9. JVM e Performance
● Compreensão básica da arquitetura da JVM.
———————————
4. Tratamento de Exceções
● Exceções Verificadas vs. Não Verificadas: Exceções verificadas (checked) devem ser
tratadas ou declaradas no método, como IOException. As não verificadas (unchecked),
como NullPointerException, não precisam ser explicitamente tratadas.
● Threads: Uma Thread é uma unidade de execução paralela. Em Java, você pode criar
threads estendendo a classe Thread ou implementando a interface Runnable.
6. Java 8+ Features
● Streams: API que permite processar coleções de dados de maneira funcional e eficiente,
como filtragem, mapeamento e redução. Os Streams podem ser processados de
forma sequencial ou paralela, facilitando o processamento massivo de dados.
● Optional: Classe introduzida para lidar com valores opcionais, evitando o uso excessivo
de null e prevenindo NullPointerExceptions. Optional é utilizado para indicar que um
valor pode ou não estar presente.
● Heap e Stack: A memória na JVM é dividida em duas áreas principais: o heap, onde os
objetos são alocados, e o stack, onde as variáveis locais e chamadas de métodos são
gerenciadas.
● Garbage Collection (GC): Processo automático que remove objetos não utilizados da
memória para evitar vazamentos. Embora o GC seja gerenciado automaticamente, o
desenvolvedor pode otimizar o desempenho reduzindo a criação de objetos
desnecessários e entendendo o funcionamento dos coletores de lixo (ex: Mark-and-
Sweep, Generational GC).
● Singleton: Garante que uma classe tenha apenas uma instância global.
● JVM (Java Virtual Machine): A JVM é responsável pela execução do bytecode Java.
Compreender seu funcionamento, como a alocação de memória (heap, stack) e os
diferentes tipos de garbage collectors, é essencial para otimizar a performance de
aplicações Java.
● JDBC (Java Database Connectivity): API padrão usada para conectar e interagir com
bancos de dados relacionais em Java. Permite a execução de consultas SQL,
inserções, atualizações e exclusões diretamente no banco de dados.
● Gradle: Outra ferramenta de build, mais moderna e flexível que o Maven, utilizando um
arquivo de configuração build.gradle baseado em scripts Groovy ou Kotlin. Gradle é
amplamente usado em projetos Android e projetos Java modernos.
Java 11 x Java 17
As versões Java 11 e Java 17 trazem diversas vantagens e melhorias significativas em relação às
versões anteriores. Ambas são versões de Long-Term Support (LTS), com foco em estabilidade,
performance e novas funcionalidades.
Comparação Geral:
● Java 11 é a primeira versão LTS pós-Java 8, trazendo grandes mudanças para modernizar
o ecossistema.
● Java 17 foca em aprimorar essas inovações, com novos recursos que tornam o
desenvolvimento Java mais eficiente, seguro e fácil de manter.
Ambas as versões são LTS, garantindo suporte contínuo para aplicações corporativas em
ambientes de produção.
BOAS PRÁTICAS
○ 1. Nomes Significativos
○ 4. Utilizar Encapsulamento
LOMBOK
● O Lombok é uma biblioteca Java que simplifica o código eliminando a
necessidade de escrever boilerplate (código repetitivo) como getters, setters,
construtores, e métodos toString(), entre outros. Ele faz isso através de
anotações que geram automaticamente o código durante a compilação.