Pular para o conteúdo principal

Questão de Arquitetura de Software — Arquitetura de Software — Instituto Legalle 2026

Arquitetura de SoftwareArquitetura de Software
Código
qg747496
Banca
Instituto Legalle
Órgão
BADESUL - RS
Ano
2026
Nível
Superior
Cargo
Técnico em Desenvolvimento - Analista de Sistemas (Ênfase em Arquiteto de Software)
No contexto do desenvolvimento de sistemas em Java, um Analista de Sistemas está analisando o funcionamento interno da JVM (Java Virtual Machine) para otimizar o desempenho de uma aplicação crítica de uma agência de fomento. Durante a execução do programa, observou-se que parte do código bytecode é convertida dinamicamente para código nativo, visando melhorar a performance em tempo de execução, especialmente em trechos frequentemente utilizados. Considerando os componentes da JVM, assinale a alternativa que indica CORRETAMENTE o responsável por realizar essa compilação para código nativo.
  1. AInterpreter.
  2. BBytecode Verifier.
  3. CExtension.
  4. DBootstrap.
  5. EJIT (Just-In-Time).
Revelar gabarito e comentário

GabaritoE — JIT (Just-In-Time).

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

JVM: Compilação JIT (Just-In-Time)

Gabarito: letra E. O componente responsável por converter bytecode em código nativo durante a execução, visando melhorar a performance de trechos frequentemente utilizados, é o compilador JIT (Just-In-Time). As demais alternativas descrevem outros componentes da JVM com funções distintas: o interpretador executa bytecode linha a linha, o verificador de bytecode valida a segurança, e Extension e Bootstrap são carregadores de classes.

1Execução
Interpreter (linha a linha)
JIT (compila bytecode → nativo)
2Segurança
Bytecode Verifier (valida)
3Carregamento de classes
Bootstrap (classes fundamentais)
Extension (extensões)
Componentes da JVM
LEVELsoulevel.com.br
Componentes da JVM: Execução (Interpreter (linha a linha), JIT (compila bytecode → nativo)); Segurança (Bytecode Verifier (valida)); Carregamento de classes (Bootstrap (classes fundamentais), Extension (extensões))

Alternativa A — ❌ Incorreta

O Interpreter (interpretador) executa o bytecode de forma interpretada, convertendo cada instrução para código nativo sob demanda, mas sem pré-compilação para otimização. Ele não realiza a compilação dinâmica para código nativo de trechos frequentes como o JIT faz. A interpretação pura é geralmente mais lenta que a execução compilada.

Alternativa B — ❌ Incorreta

O Bytecode Verifier (verificador de bytecode) é responsável por checar a integridade e segurança do bytecode antes da execução, garantindo que não viole regras da JVM. Ele não compila código; apenas valida.

Alternativa C — ❌ Incorreta

Extension (carregador de classes de extensão) é um tipo de class loader que carrega classes do diretório de extensão (lib/ext). Sua função é localizar e carregar classes, não compilar bytecode.

Alternativa D — ❌ Incorreta

Bootstrap (carregador de classes bootstrap) é o class loader raiz que carrega as classes fundamentais da JVM (como java.lang.*). Ele não realiza compilação JIT.

Alternativa E — ✅ Correta ⟵ GABARITO

O JIT (Just-In-Time) compiler é o componente da JVM que compila bytecode para código nativo em tempo de execução, especialmente para métodos ou blocos frequentemente executados (hot spots). Isso acelera a execução ao evitar reinterpretação contínua e é essencial para a performance de aplicações Java. A descrição do enunciado — "código bytecode é convertida dinamicamente para código nativo" — corresponde exatamente à função do JIT.

Gabarito: letra E.

Link permanente: /questoes/qg747496