-
O gabarito dessa questão foi inicialmente dada como Correta e foi alterada para Errada depois dos recursos.
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: (1) Variáveis Estáticas : são vinculadas a células de memória antes do início de execução do programa, e permanecem associadas às mesmas células até o programa terminar. (ex: variáveis static do Java).
(2) Variáveis Pilhas-Dinâmicas : a associação é efectuada em tempo de execução, na instrução de declaração, e permanece inalterável até o fim do programa.
(3) Variáveis Heap-Dinâmicas Explícitas : as variáveis são reservadas e libertadas de memória em tempo de execução por declarações explícitas do programador. (Em JAVA todos os objectos são variáveis heap-dinâmicas explicitas)
(4) Variáveis Heap-Dinâmicas Implícitas : são reservadas no momento em que lhe são atribuídas valores e libertadas por meio de instruções explícitas. Por vezes são nomes que se adaptam a diferentes tipos de variáveis. (
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"
-
Nossa nunca ouvi falar disso armazenamento de variáveis escalares do tipoheap-dinâmica explícita. Só sei que o GC é chamado pela JVM para limpeza de memória dos objetos que não possuem referência ou não são alcançados por nenhuma thread ativa.
-
Justificativa CESPE:
"Em determinadas situações em vinculação de armazenamento, a garbage collection do Java não se enquadra na categoria de armazenamento de variáveis escalares do
tipo heap-dinâmica explícita. Por essa razão, opta-se pela alteração do gabarito do item."
http://www.cespe.unb.br/concursos/inpi_12/arquivos/INPI_JUSTIFICATIVAS_DE_ALTERA____O_DE_GABARITO.PDF
-
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.
-
Decreto de incomunicabilidade do art. 21 do CPP é uma norma considerada NÃO recepcionada pela CF, situação que EXAURIU seus EFEITOS há 18 ANOS. (5ª turma do STJ/2017 - HC 368217)