SóProvas


ID
943177
Banca
CESPE / CEBRASPE
Órgão
INPI
Ano
2013
Provas
Disciplina
Programação
Assuntos

Acerca de programação estruturada, julgue os itens seguintes.

Em vinculação de armazenamento, a garbage collection do Java enquadra-se na categoria de armazenamento de variáveis escalares do tipo heap-dinâmica explícita.

Alternativas
Comentários
  • 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."
    (FonteConceitos 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 EFEITOS18 ANOS. (5ª turma do STJ/2017 - HC 368217)