Em vinculação de armazenamento, a garbage collection do Ja...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado
Ao analisarmos a questão, precisamos entender o conceito de garbage collection (coleta de lixo) e como ele se aplica dentro do contexto da linguagem de programação Java. A garbage collection é um mecanismo automático de gerenciamento de memória que tem a função de recuperar a memória alocada por objetos que não são mais acessíveis ou úteis para o programa, ou seja, que se tornaram "lixo".
A afirmação da questão sugere que a garbage collection do Java se classifica como "armazenamento de variáveis escalares do tipo heap-dinâmica explícita". Essa afirmação é incorreta por algumas razões:
Em primeiro lugar, o termo "heap-dinâmica explícita" geralmente é usado para descrever situações em que o programador deve alocar e desalocar memória manualmente (como em linguagens como C e C++ usando malloc
e free
, ou new
e delete
).
Em contraste, Java possui um sistema de gerenciamento de memória automático onde o programador não precisa desalocar memória explicitamente. Nesse caso, a linguagem de programação fornece o garbage collector, que opera de forma implícita, sem a necessidade de intervenção direta do desenvolvedor.
Além disso, o termo "variáveis escalares" geralmente se refere a variáveis que armazenam um único valor, como um número inteiro ou um caractere. No entanto, a garbage collection no Java é responsável por objetos, que podem conter múltiplos valores e representar estruturas de dados complexas.
Portanto, a garbage collection em Java pode ser mais adequadamente descrita como um mecanismo automático que opera na heap, onde objetos são alocados e gerenciados, mas sem a necessidade de desalocação explícita por parte do programador.
Com base nesses pontos, a alternativa correta é "E - errado", pois a afirmação não representa corretamente como a garbage collection funciona em Java.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Existiu uma discussão sobre essa questão aqui: Timasters
Vou copiar as melhores respostas de lá:
As vinculações de memória a variáveis, podem ser divididas em quatro categorias de acordo com o seu tempo de vida:
(Fonte: Conceitos de Linguagens de Programação, Aula baseada no Livro do Sebesta)
Porém, a questão perguntou em relação ao garbage collection (e não aos objetos criados em Java) e por isso ele não pode ser considerado explícito. Visto que o programador não tem real controle sobre o garbage collector. Segue:
"Em Java, todos os dados, exceto os escalares primitivos, são objetos. Os objetos Java são dinâmicos na pilha explícitos e acessados por meio de variáveis de referência. O Java não tem nenhuma maneira de destruir explicitamente uma variável dinâmica na pilha; em vez disso, é usada a coleta de lixo implícita."
(Fonte: Conceitos de Linguagens de Programação, 5ª Edição, Robert W. Sebesta, pag 188)
Gabarito "E"
Em Java, a alocação e desalocação de memória acontece de maneira automática.
o erro seria dizer que java trabalhar explicitamente, exemplo que linguagem que trabalhar explicito e C++
O GC, ou Garbage Collector (Coletor de Lixo), é um recurso responsável por desalocar quantidades de memória que não se encontram mais acessíveis em um programa.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo