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
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
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
oulong
) sem usar a palavra-chavesynchronized
?
a) Usar um blocotry-finally
.
b) Usar a classeThreadLocal
.
c) Usar classes atômicas (ex:AtomicInteger
).
d) Usar ovolatile
na variável.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
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
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.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
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
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).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) Usargit reset --hard HEAD
.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
- b)
ArrayList
- c) Usar classes atômicas (ex:
AtomicInteger
). - c)
reduce()
- c)
PUT
- c) A requisição não foi autenticada (credenciais ausentes ou inválidas).
- b) JSON é mais leve e mais fácil de ser parseado por JavaScript.
- c)
git checkout -b feature/novo-recurso
- c) Legibilidade e Manutenibilidade (o código pode ser mais limpo).
- b) Revisar o arquivo em conflito e editar manualmente as linhas problemáticas.
- 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!