Pular para o conteúdo principal

Questão de Programação — C — Quadrix 2025

ProgramaçãoC
Código
qg595097
Banca
Quadrix
Órgão
CFO
Ano
2025
Nível
Médio
Cargo
Técnico em Tecnologia da Informação
As linguagens de programação são responsáveis por tirar do papel os algoritmos criados pelo programador e por transformá‑los em programas para serem executados pelos computadores modernos. Considerando essa informação, julgue o item seguinte.A compilação de código Java resulta em um código de máquina que é executado diretamente pelo sistema operacional, como em linguagens como C ou C++.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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”.

Compilação Java: bytecode e a JVM

Gabarito: E — ERRADO. A afirmação está incorreta porque a compilação de código Java não gera código de máquina executado diretamente pelo sistema operacional; ela gera um bytecode (código intermediário) que é executado pela Máquina Virtual Java (JVM), que por sua vez interpreta ou compila (JIT) esse bytecode para o código de máquina do sistema hospedeiro. Isso difere de linguagens como C ou C++, que compilam diretamente para código de máquina nativo.

A compilação é o processo de traduzir o código-fonte inteiro para uma forma executável antes da execução. Em linguagens como C e C++, o compilador gera diretamente código de máquina específico para uma plataforma (processador + sistema operacional), que pode ser executado diretamente pelo sistema operacional. Já em Java, o compilador (javac) traduz o código-fonte para um código intermediário chamado bytecode, que não é código de máquina de nenhuma plataforma específica. Esse bytecode é executado pela JVM, que é um software que emula uma máquina virtual. A JVM, ao executar o bytecode, pode interpretá-lo ou compilá-lo em tempo de execução usando a técnica JIT (Just-In-Time), convertendo o bytecode em código de máquina do sistema hospedeiro. Portanto, o programa Java não é executado diretamente pelo sistema operacional, mas sim pela JVM, que age como uma camada intermediária.

Essa arquitetura confere a portabilidade característica do Java: o mesmo bytecode pode ser executado em qualquer plataforma que possua uma JVM, sem necessidade de recompilação. Em contraste, um programa compilado em C para Windows não roda diretamente em Linux, pois o código de máquina é específico da plataforma. A pegadinha da questão está em afirmar que Java compila para código de máquina como C/C++, ignorando a existência da JVM e do bytecode.

Guarde a distinção central: linguagens compiladas para código nativo (C, C++) versus linguagens compiladas para código intermediário executado por uma máquina virtual (Java, C#). É exatamente essa fronteira que a questão explora.

Compilação Java
  • 1Gera bytecode
    • Código intermediário
    • Executado pela JVM
  • 2JVM
    • Interpreta ou compila JIT
    • Código de máquina do hospedeiro
  • 3Portabilidade
    • Mesmo bytecode em qualquer plataforma
    • Sem recompilação
  • 4Compilação C/C++
    • Gera código de máquina nativo
      • Específico da plataforma
      • Executado diretamente pelo SO
LEVEL · soulevel.com.br

Alternativa E — ❌ Incorreta ⟵ GABARITO

A afirmação está errada porque a compilação de Java gera bytecode, não código de máquina nativo. O bytecode é executado pela JVM, que o interpreta ou compila em tempo de execução (JIT) para o código de máquina do sistema operacional. Diferentemente de C/C++, que compilam diretamente para código de máquina executável pelo sistema operacional, Java depende da JVM como camada intermediária. Portanto, a premissa de que o código Java é executado diretamente pelo sistema operacional é falsa.

Gabarito: E — ERRADO.

Link permanente: /questoes/qg595097