Pular para o conteúdo principal

Questão de Programação — Plataforma Java — FUNDATEC 2025

ProgramaçãoPlataforma Java
Código
qg474876
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação / Ênfase em Análise de Sistemas / Gerência de Projetos de TI
Tanto a plataforma Java (até a versão 8 LTS) quanto a plataforma.NET utilizam um modelo de compilação e execução que abstrai o hardware subjacente para permitir a portabilidade do código. Considerando os "conceitos fundamentais" de cada plataforma, qual das seguintes alternativas apresenta corretamente a principal diferença entre seus respectivos ambientes de execução?
  1. AJava compila o código-fonte para um código intermediário chamado bytecode, que é executado pela Java Virtual Machine (JVM), enquanto .NET compila suas linguagens (como C#) para a Common Intermediate Language (CIL), que é executada pelo Common Language Runtime (CLR).
  2. BA plataforma .NET compila o código diretamente para o formato nativo do sistema operacional de destino, enquanto o Java 8 sempre executa o código de forma interpretada, resultando em menor performance.
  3. CA Java Virtual Machine (JVM) é um conceito exclusivo do sistema operacional Windows, enquanto o Common Language Runtime (CLR) do .NET foi projetado desde o início para ser multiplataforma, rodando em Linux e Windows.
  4. DO ambiente de execução do Java 8 permite a utilização de diversas linguagens (como Kotlin e Scala), enquanto o ambiente. NET está restrito exclusivamente à linguagem C#.
  5. EO bytecode do Java e a CIL do .NET são funcionalmente idênticos, sendo a única diferença o nome de suas máquinas virtuais (JVM e CLR, respectivamente), que são apenas implementações concorrentes da mesma especificação técnica.
Revelar gabarito e comentário

GabaritoA — Java compila o código-fonte para um código intermediário chamado bytecode, que é executado pela Java Virtual Machine (JVM), enquanto .NET compila suas linguagens (como C#) para a Common Intermediate Language (CIL), que é executada pelo Common Language Runtime (CLR).

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

Plataforma Java vs .NET – Modelos de Compilação e Execução

Gabarito: letra A. A principal diferença entre os ambientes de execução de Java (até a versão 8 LTS) e .NET reside no formato do código intermediário e na máquina virtual que o executa. Java compila para bytecode executado pela JVM; .NET compila para CIL (Common Intermediate Language) executado pelo CLR (Common Language Runtime).

Critério

Java (até versão 8 LTS)

.NET

Código intermediário

Bytecode

CIL (Common Intermediate Language)

Ambiente de execução

JVM (Java Virtual Machine)

CLR (Common Language Runtime)

Modelo de execução

Interpretado + JIT

Compilado JIT

Suporte a múltiplas linguagens

Sim (Kotlin, Scala, etc.)

Sim (C#, VB.NET, F#, etc.)

Multiplataforma nativa

Sim (desde o início)

Originalmente apenas Windows; multiplataforma a partir do .NET Core

Alternativa A — ✅ Correta ⟵ GABARITO

Descreve corretamente os dois modelos: Java gera bytecode interpretado/compilado pela JVM, enquanto .NET gera CIL gerenciado pelo CLR. Ambas as plataformas utilizam uma camada de abstração para garantir portabilidade, mas com implementações diferentes.

Alternativa B — ❌ Incorreta

Afirma que .NET compila diretamente para código nativo e que Java 8 é sempre interpretado. Na verdade, tanto a JVM (com compilação JIT) quanto o CLR utilizam compilação just-in-time para melhorar performance. Java 8 também pode compilar bytecode para nativo em tempo de execução, não sendo puramente interpretado.

Alternativa C — ❌ Incorreta

Inverte a realidade: a JVM foi projetada para ser multiplataforma desde o início (Windows, Linux, macOS), enquanto o .NET original era restrito ao Windows. Apenas com o .NET Core (atual .NET) é que se tornou verdadeiramente multiplataforma. A JVM não é exclusiva do Windows.

Alternativa D — ❌ Incorreta

Erro duplo: o ambiente .NET suporta várias linguagens (C#, VB.NET, F#, etc.), não apenas C#. Já o ecossistema Java também permite outras linguagens (Kotlin, Scala, Groovy) que rodam na JVM, mas a afirmação de que .NET está restrito ao C# é falsa.

Alternativa E — ❌ Incorreta

Afirma que bytecode e CIL são funcionalmente idênticos e as máquinas virtuais são concorrentes da mesma especificação. Embora ambos sejam linguagens intermediárias, são especificações diferentes, com conjuntos de instruções e implementações distintas (JVM vs CLR). Não são idênticos nem convergem para a mesma especificação.

🎯 Pegadinha: A alternativa E tenta confundir o candidato ao sugerir que bytecode e CIL são a mesma coisa, quando na verdade são formatos intermediários de plataformas diferentes. Lembre-se: cada plataforma tem seu próprio formato e sua própria máquina virtual, com arquiteturas independentes.

Gabarito: letra A.

Link permanente: /questoes/qg474876