1
resposta

Excelente ideia! Praticar com um quiz é a melhor maneira de consolidar esses conceitos.

Preparei 10 perguntas focadas nos seus pontos fortes: Java (Conceitos Essenciais), APIs/REST, e Git/Colaboração.


Quiz Técnico: Java, APIs e Colaboração.

Parte 1: Java e Estruturas de Dados

  1. Pergunta (ArrayList vs. LinkedList): Você precisa implementar uma lista que será frequentemente percorrida para leitura, mas raramente terá adições ou remoções no meio. Qual estrutura de coleção é mais eficiente para esse cenário?
    a) HashMap
    b) ArrayList
    c) LinkedList
    d) TreeSet

  2. Pergunta (Thread Safety): Qual das seguintes abordagens é a maneira mais eficiente em Java para garantir a Thread Safety em operações de incremento/decremento de uma única variável (int ou long) sem usar a palavra-chave synchronized?
    a) Usar um bloco try-finally.
    b) Usar a classe ThreadLocal.
    c) Usar classes atômicas (ex: AtomicInteger).
    d) Usar o volatile na variável.

  3. Pergunta (Java 8 Streams): Qual método terminal do Stream API é usado para combinar todos os elementos de um stream em um único resultado (ex: somar todos os valores ou concatenar todas as strings)?
    a) map()
    b) filter()
    c) reduce()
    d) collect(Collectors.toList())

Parte 2: APIs e REST

  1. Pergunta (Métodos HTTP): Em uma API RESTful, qual método HTTP é idempotente e usado para atualizar um recurso inteiro, substituindo todos os seus dados atuais?
    a) POST
    b) GET
    c) PUT
    d) PATCH

  2. Pergunta (Status Code 4xx): Ao consumir uma API, você recebe um código de status HTTP 401. O que este código geralmente indica?
    a) O servidor encontrou um erro interno.
    b) O recurso solicitado não foi encontrado.
    c) A requisição não foi autenticada (credenciais ausentes ou inválidas).
    d) A requisição foi bem-sucedida, mas não há conteúdo para retornar.

  3. Pergunta (API Design): Qual o principal benefício de usar JSON em vez de XML para troca de dados em APIs RESTful modernas?
    a) JSON suporta criptografia nativamente.
    b) JSON é mais leve e mais fácil de ser parseado por JavaScript.
    c) XML não suporta arrays.
    d) JSON garante 100% de Thread Safety.

Parte 3: GitHub e Colaboração

  1. Pergunta (Git Flow): Você está desenvolvendo uma nova funcionalidade (feature). Qual é o comando correto para iniciar o trabalho a partir da branch principal (main)?
    a) git merge feature/novo-recurso
    b) git commit -m "Nova feature"
    c) git checkout -b feature/novo-recurso
    d) git push origin main

  2. Pergunta (Code Review): Durante uma revisão de código (Pull Request), você nota que um colega reescreveu a lógica usando um loop complexo quando um Stream do Java 8 simplificaria o código drasticamente. O que este feedback avalia principalmente?
    a) Funcionalidade (a lógica está errada).
    b) Segurança (o código está vulnerável).
    c) Legibilidade e Manutenibilidade (o código pode ser mais limpo).
    d) Performance (o loop é sempre mais lento que o Stream).

  3. Pergunta (Conflito de Merge): O que você deve fazer imediatamente após receber um erro de conflito de merge ao tentar unir duas branches no Git?
    a) Forçar o push para sobrescrever as mudanças do colega.
    b) Revisar o arquivo em conflito e editar manualmente as linhas problemáticas.
    c) Apagar a sua branch e começar o trabalho do zero.
    d) Usar git reset --hard HEAD.

  4. Pergunta (Metodologia Ágil): Em metodologias Ágeis como Scrum, o que representa um Commit Atômico no Git?
    a) Um commit que agrupa todas as alterações da feature em um único envio ao final.
    b) Um commit que resolve um único bug por vez.
    c) Um commit que contém uma única alteração lógica e completa.
    d) Um commit que só pode ser feito após o Code Review.


Respostas

  1. b) ArrayList
  2. c) Usar classes atômicas (ex: AtomicInteger).
  3. c) reduce()
  4. c) PUT
  5. c) A requisição não foi autenticada (credenciais ausentes ou inválidas).
  6. b) JSON é mais leve e mais fácil de ser parseado por JavaScript.
  7. c) git checkout -b feature/novo-recurso
  8. c) Legibilidade e Manutenibilidade (o código pode ser mais limpo).
  9. b) Revisar o arquivo em conflito e editar manualmente as linhas problemáticas.
  10. c) Um commit que contém uma única alteração lógica e completa.

Quantas você acertou? Podemos agora detalhar as respostas que você errou ou teve dúvidas!

1 resposta

Excelente dica!