Repositório destinado a estudos colaborativos para a certificação Java OCA (Oracle Certified Associate).
Este repositório contém uma coleção organizada de exemplos de código, exercícios e documentação para preparação do exame Oracle Certified Associate (OCA) Java SE 8 Programmer I. Os conteúdos seguem o guia oficial de estudos e incluem práticas de pacotes, imports, variáveis, controle de fluxo, OOP e demais tópicos cobrados na certificação.
O projeto utiliza Gradle para build e está estruturado por capítulos, facilitando a revisão para a prova e o estudo colaborativo em grupo. Além disso, foi adotado um pipeline de qualidade com JaCoCo e SonarCloud para reforçar boas práticas de testes e código limpo: os relatórios de cobertura ajudam a manter um nível mínimo de testes para cada capítulo, enquanto a análise estática destaca bugs, code smells e problemas de manutenção que são discutidos em grupo como parte do aprendizado.
- ☕ Java 8 (SE) - Linguagem e versão alvo da certificação OCA
- 🧱 Gradle - Build, testes, cobertura e integração com análise estática
- ✅ JUnit 5 (Jupiter) - Testes unitários
- 🌱 Git - Controle de versão e fluxo colaborativo
- 📊 JaCoCo - Geração de relatórios de cobertura de testes (XML/HTML) integrados ao Gradle
- 🔍 SonarCloud (SonarQube SaaS) - Análise estática de código e cobertura via workflow
SonarCloud Analyze(./gradlew build sonar) - 🤖 GitHub Actions - CI (build, testes, envio de cobertura para o SonarCloud e dependency submission)
- Java 8 JDK ou superior
- Gradle (ou use o wrapper:
./gradlew)
- Clone o repositório:
git clone https://github.com/henriqueotogami/road-to-java-oca.git
cd road-to-java-oca- Compile o projeto:
./gradlew build- Execute exemplos específicos:
# Via Gradle (classe principal padrão)
./gradlew run
# Ou diretamente com Java (exemplo de Properties)
./gradlew :app:compileJava
java -cp app/build/classes/java/main oca.chapter01.fundamentals.exemple06.Example06PropertiesManager -list_all- Execute os testes:
./gradlew test- Execute apenas os testes do Capítulo 1:
./gradlew chapter01- Execute apenas os testes do Capítulo 2:
./gradlew chapter02- ✅ Empacotamento e estrutura de pacotes em Java
- ✅ Compilação e interpretação (javac, JVM, bytecode)
- ✅ Imports (single, static, multi)
- ✅ Interfaces e implementações
- ✅ Propriedades do sistema (
-D,System.getProperty) - ✅ Exercícios de compilação e pacotes (ex.:
planets) - ✅ Boas práticas de versionamento (branches, issues, tags)
- ✅ Variáveis e tipos de dados (Capítulo 2 — atribuições, primitivos e wrappers)
- ✅ Operadores (incremento/decremento, aritméticos, lógicos)
- ✅ Controle de fluxo (
if/else,switch,while,do-while,for,foraprimorado) - 🔲 Arrays
- 🔲 Métodos e encapsulamento
- 🔲 Herança e polimorfismo
- 🔲 Exceções
- 🔲 APIs fundamentais (String, etc.)
main
|
|____ dev-henrique
|____ dev-vitor
|____ dev-lucas
- Branch principal e consolidada do repositório
- Representa o estado atual do aprendizado do grupo
- Contém apenas código revisado e validado
- ❌ Não é permitido commit direto
- Branches individuais dos integrantes
- Criadas exclusivamente para atender uma Issue
- Devem sempre ser criadas a partir da
main
- Toda task de estudo deve começar com uma Issue
- ❌ Nenhuma branch pode ser criada sem Issue associada
- A Issue deve descrever: tópico, objetivo e escopo
Branches: dev-henrique/issue-#12, dev-vitor/issue-#15
Tags (task): task-01-variaveis, task-02-operadores
Tags (capítulo): chapter01, chapter02
- Criar Issue descrevendo a task
- Criar branch individual a partir da
main - Desenvolver e estudar na branch
- Garantir que os testes passem localmente e que a cobertura de testes unitários esteja ≥ 80% (ver relatórios JaCoCo e painel do SonarCloud)
- Abrir Pull Request para
mainao concluir - Aguardar o GitHub Actions rodar
./gradlew build sonare verificar o Quality Gate do SonarCloud (cobertura ≥ 80%, ausência de novos bugs críticos e code smells bloqueantes) - Revisar em grupo
- Merge → fechar Issue → criar tag
- Commits e Pull Requests para qualquer branch disparam o workflow
SonarCloud Analyzeno GitHub Actions. - Esse workflow executa os scripts Gradle configurados no projeto:
./gradlew build→ compila o código, roda os testes (test,chapter01,chapter02) e gera o relatório de cobertura do JaCoCo../gradlew sonar→ usa o pluginorg.sonarqubepara enviar código, métricas e o relatório do JaCoCo para o SonarCloud.
- O resultado aparece no painel do SonarCloud, que aplica o Quality Gate (incluindo a regra de cobertura ≥ 80%) e sinaliza no PR se o código está ou não em conformidade com os critérios de qualidade.
- ❌ Nunca trabalhar diretamente na branch
main - ❌ Nenhuma branch sem Issue associada
- ✅ Preferir commits pequenos e bem descritos
- 📚 O histórico de commits, Issues e tags faz parte do material de estudo
- Oracle Certified Associate (OCA) Java SE 8
- Java SE 8 Documentation
- Guia de Estudos OCA Java SE 8 (material interno)
- Gradle User Manual
Contribuições são bem-vindas! Para contribuir:
- Faça um fork deste repositório
- Crie uma Issue descrevendo o tópico de estudo
- Crie um branch a partir da
main(dev-<name>/issue-<#number>) - Faça commit das suas mudanças
- Abra um Pull Request referenciando a Issue
- Adição do Capítulo 2 em
chapter02/primitives(exemplos de variáveis, operadores, controle de fluxo e exercíciosValidString,ValidBigFishes) - Testes automatizados do Capítulo 2:
AttributionTesteConditionalsTest(JUnit 5) - Task Gradle
chapter02para executar apenas os testes do Capítulo 2 (./gradlew chapter02) - Documentação:
docs/chapter02/annotations.txt(anotações de instruções Java) echapter02Exame.txt(simulado final) - Pipeline de qualidade: fluxo JaCoCo + SonarCloud configurado com plugin
jacocoeorg.sonarqube, executado via GitHub Actions (SonarCloud Analyze) que roda./gradlew build sonare publica métricas de bugs, code smells e cobertura
- Interface
Planetno pacoteexercise02(Earth, Mars, Venus implementam a interface) - Testes automatizados com JUnit 5:
ImportAndCompileTestparaExercise01ImporteExercise02Compile - Task Gradle
chapter01para executar apenas os testes do Capítulo 1 (./gradlew chapter01) - Documentação:
docs/chapter01/article.txt(artigo do Capítulo 1: plataforma, empacotamento, compilação) - Tecnologias: migração de JUnit 4 para JUnit 5 (Jupiter)
- Exemplos do Capítulo 1 em subpacotes:
exemple01–exemple06(pacotes, imports, interfaces, propriedades) - Exercícios:
exercise01(imports),exercise02(compilação e pacoteplanets: Earth, Mars, Venus) - Material complementar em
plus/(StringTokenizer) - Recursos em
app/src/main/resources/oca/chapter01/fundamentals/(logs, propriedades, instruções) - Documentação em
docs/e anotações emchapterExam.txt - CI com GitHub Actions (Gradle build e dependency submission)
- Fluxo de trabalho documentado
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
#Java #OCA #OracleCertification #JavaSE8 #Certification #Study #Learning #Gradle #OpenSource #GitHub #Programming #Backend
java oca, oracle certified associate, java se 8, certificação java,
estudos java, preparação oca, gradle, programação java, backend,
aprendizado, boas práticas, versionamento, colaborativo

