Pular para o conteúdo principal

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

ProgramaçãoJava
Código
qg595093
Banca
Quadrix
Órgão
CFO
Ano
2025
Nível
Médio
Cargo
Técnico em Tecnologia da Informação
Em relação às linguagens Java e PHP, julgue o item a seguir.O PHP não possui um sistema de garbage collection tão sofisticado quanto o de Java, e a administração de memória em PHP depende mais da boa prática do programador para liberar explicitamente objetos e recursos.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

Gerenciamento de memória: Java × PHP

Gabarito: ✅ CERTO. A afirmação está correta: o PHP não possui um sistema de garbage collection tão sofisticado quanto o de Java, e a administração de memória em PHP depende mais da boa prática do programador para liberar explicitamente objetos e recursos. Essa é uma distinção clássica entre as duas linguagens, amplamente reconhecida na literatura e em provas de TI.

O garbage collector (coletor de lixo) é o mecanismo que gerencia automaticamente a memória, liberando objetos que não são mais referenciados pelo programa. Em Java, o garbage collector é uma parte central da JVM (Java Virtual Machine), com algoritmos sofisticados (como G1, ZGC, Shenandoah) que rodam em segundo plano, de forma automática e otimizada, minimizando a necessidade de intervenção do programador. O programador Java raramente precisa se preocupar com a liberação explícita de memória — na verdade, chamar System.gc() é desencorajado, pois o coletor já decide o melhor momento para agir.

No PHP, o gerenciamento de memória também é automático em grande parte, mas o coletor de lixo é mais simples e menos previsível. O PHP usa um mecanismo de contagem de referências (reference counting) para gerenciar a memória, complementado por um coletor de ciclos (cycle collector) que roda periodicamente. Isso significa que, em muitos casos, o programador precisa tomar cuidados adicionais, como liberar explicitamente recursos (fechar conexões de banco de dados, arquivos, etc.) e evitar referências circulares, para garantir que a memória seja liberada de forma eficiente. Em aplicações PHP de longa duração (como workers de filas), a falta de liberação explícita pode levar a vazamentos de memória (memory leaks).

A diferença fundamental está na filosofia das linguagens: Java foi projetada com foco em aplicações empresariais de grande porte, onde o gerenciamento automático de memória é essencial para a produtividade e a segurança; PHP, por sua vez, foi criada para desenvolvimento web rápido, onde o ciclo de vida de cada requisição é curto e a memória é liberada ao final de cada script, o que reduz a necessidade de um coletor sofisticado. Por isso, a afirmação da questão reflete corretamente essa realidade.

A pegadinha que a banca poderia explorar é inverter a sofisticação: afirmar que o PHP tem um garbage collector mais sofisticado que o Java, ou que o programador Java precisa liberar memória explicitamente. Mas a questão está alinhada com o conhecimento técnico consolidado, então a resposta é Certo.

Critério

Java

PHP

Sofisticação do garbage collector

Alta (G1, ZGC, Shenandoah)

Baixa (contagem de referências + coletor de ciclos)

Dependência da ação do programador

Baixa (liberação automática; System.gc() desencorajado)

Alta (liberação explícita de recursos, evitar referências circulares)

Filosofia de gerenciamento

Automático e otimizado para aplicações empresariais

Ciclo de vida curto por requisição; menos previsível em processos longos

Alternativa C — ✅ Correta ⟵ GABARITO

A afirmação está correta. O PHP possui um garbage collector, mas ele é menos sofisticado que o da JVM. Em PHP, a liberação de memória depende mais de boas práticas do programador, como fechar recursos explicitamente (conexões, arquivos) e evitar referências circulares, enquanto em Java o coletor de lixo é mais automático e robusto. Essa é uma distinção amplamente aceita na comunidade de desenvolvimento.

Gabarito: ✅ CERTO

Link permanente: /questoes/qg595093