Questão de Programação — Java — Quadrix 2025
- Código
- qg595091
- Banca
- Quadrix
- Órgão
- CFO
- Ano
- 2025
- Nível
- Médio
- Cargo
- Técnico em Tecnologia da Informação
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: C — CERTO. A afirmação está correta: Java compila o código-fonte para bytecode, que é executado pela JVM (máquina virtual), enquanto o PHP é uma linguagem interpretada, sem fase de compilação para bytecode — o que tende a gerar desempenho inferior, mas facilita a depuração. Essa é a distinção clássica entre linguagens compiladas e interpretadas, e o item a descreve com precisão.
Para entender por que o item está certo, é preciso dominar a diferença entre compilação e interpretação. Na compilação, o código-fonte é traduzido integralmente para uma linguagem de máquina (ou para um código intermediário) antes da execução. Na interpretação, o código é traduzido e executado linha por linha, em tempo de execução, sem uma etapa prévia de geração de um arquivo executável.
Java é um caso híbrido: o compilador javac traduz o código-fonte (.java) para bytecode (.class), um código intermediário independente de plataforma. Esse bytecode é então executado pela JVM (Java Virtual Machine), que o interpreta ou o compila em tempo de execução usando a técnica JIT (Just-In-Time). É por isso que se diz que Java é portável: o mesmo bytecode roda em qualquer sistema que tenha uma JVM.
O PHP, por sua vez, é tradicionalmente uma linguagem interpretada: o código-fonte é lido e executado diretamente pelo interpretador PHP, sem uma fase de compilação para um código intermediário. Isso significa que, a cada execução, o interpretador analisa e executa o código, o que tende a ser mais lento do que executar código já compilado. Por outro lado, a ausência de uma etapa de compilação torna a depuração mais direta, pois os erros são reportados em tempo de execução, no próprio ambiente de desenvolvimento.
A pegadinha que a banca poderia explorar aqui é inverter os papéis: afirmar que Java é interpretado diretamente ou que PHP é compilado para bytecode. O item, no entanto, acerta ao descrever Java como compilado para bytecode interpretado pela JVM e PHP como interpretado diretamente, com as consequências de desempenho e depuração corretamente associadas.
Para questões que comparam linguagens, monte uma tabela mental com os critérios: forma de execução (compilada, interpretada ou híbrida), existência de código intermediário, portabilidade e desempenho. Java é híbrida (compila para bytecode e interpreta na JVM); PHP é interpretada. Essa distinção é recorrente em provas de programação.
Critério | Java | PHP |
|---|---|---|
Forma de execução | Compilada para bytecode, interpretado pela JVM | Interpretada diretamente, sem compilação prévia |
Código intermediário | Sim (bytecode | Não |
Desempenho | Maior (com JIT) | Menor (interpretação em tempo de execução) |
Facilidade de depuração | Menor (erros em tempo de execução, após compilação) | Maior (erros reportados diretamente na execução) |
A afirmação está correta em todos os seus elementos:
Java compila para bytecode interpretado pela JVM: o compilador javac gera o arquivo .class com bytecode, que é executado pela JVM. A JVM pode interpretar o bytecode ou usar compilação JIT para melhorar o desempenho.
PHP é interpretado diretamente: o interpretador PHP executa o código-fonte sem uma fase de compilação para bytecode, o que é característico de linguagens interpretadas.
Desempenho menor: programas interpretados tendem a ser mais lentos que os compilados, pois a tradução ocorre em tempo de execução.
Facilidade de depuração: em linguagens interpretadas, os erros são detectados e reportados durante a execução, o que facilita o processo de depuração, já que não há uma etapa de compilação separada.
O item não contém nenhuma inversão ou imprecisão. Ele descreve corretamente o modelo de execução de ambas as linguagens e as consequências práticas dessa diferença.
Gabarito: C — CERTO.
Link permanente: /questoes/qg595091