Prévia do material em texto
Garbage collection O que e o garbage collection em programacao? a) Um processo que otimiza a velocidade de execucao de programas. b) Um mecanismo que libera memoria ocupada por objetos que nao sao mais referenciados. c) Uma tecnica para armazenar dados de forma eficiente. d) Um algoritmo utilizado para ordenar dados na memoria. Resposta correta: b) Um mecanismo que libera memoria ocupada por objetos que nao sao mais referenciados. Explicacao: O garbage collection e um processo automatico que gerencia a alocacao e liberacao de memoria, removendo objetos que nao sao mais acessados, evitando vazamentos de memoria. Qual e a principal vantagem do uso de garbage collection? a) Reducao do consumo de memoria em tempo de execucao. b) Eliminacao da necessidade de gerenciamento manual de memoria. c) Aumento da performance de CPU. d) Aumento da complexidade do codigo. Resposta correta: b) Eliminacao da necessidade de gerenciamento manual de memoria. Explicacao: O garbage collection permite que o desenvolvedor se concentre na logica do programa, sem precisar se preocupar com a liberacao explicita de memoria, o que facilita o desenvolvimento e reduz a chance de erros. Como o garbage collection pode impactar a performance de um programa? a) Ele sempre melhora a performance, tornando o codigo mais rapido. b) Ele pode gerar pausas imprevisiveis durante a execucao do programa. c) Ele elimina todas as operacoes de leitura e escrita na memoria. d) Ele nao afeta a performance de forma significativa. Resposta correta: b) Ele pode gerar pausas imprevisiveis durante a execucao do programa. Explicacao: Embora o garbage collection seja util para liberar memoria automaticamente, ele pode causar pausas na execucao do programa, o que pode impactar a performance, especialmente em sistemas com requisitos de baixa latencia. O que acontece quando o garbage collector detecta que um objeto nao e mais referenciado? a) Ele mantem o objeto na memoria ate que o programa termine. b) Ele libera a memoria do objeto, tornando-a disponivel para novos objetos. c) Ele copia o objeto para outro local na memoria. d) Ele salva o objeto em um arquivo de log antes de libera-lo. Resposta correta: b) Ele libera a memoria do objeto, tornando-a disponivel para novos objetos. Explicacao: Quando um objeto nao e mais referenciado e se torna inacessivel, o garbage collector o remove da memoria, liberando espaco para que novos objetos possam ser alocados. Qual tecnica o garbage collector geralmente usa para determinar quais objetos podem ser coletados? a) Contagem de referencias. b) Comparacao de valores de objetos. c) Analise de tempo de vida dos objetos. d) Definicao de uma faixa de tempo para o uso de memoria. Resposta correta: a) Contagem de referencias. Explicacao: O garbage collection geralmente utiliza a tecnica de contagem de referencias para identificar objetos que nao possuem mais referencias ativas. Quando um objeto tem o contador de referencias igual a zero, ele e considerado inacessivel e pode ser coletado. O que e o conceito de "garbage collector pausado"? a) E quando o garbage collector e ativado manualmente pelo programador. b) E quando o garbage collector realiza a coleta de lixo enquanto o programa esta em execucao sem interrupcoes. c) E uma pausa no programa onde o garbage collector executa a limpeza de memoria. d) E quando o garbage collector coleta dados temporarios do programa. Resposta correta: c) E uma pausa no programa onde o garbage collector executa a limpeza de memoria. Explicacao: Quando o garbage collector executa a coleta de lixo, ele pode causar uma pausa no programa, interrompendo temporariamente a execucao enquanto verifica e limpa objetos desnecessarios da memoria. Qual e o principal objetivo do processo de garbage collection? a) Evitar que objetos sejam duplicados na memoria. b) Liberar memoria ocupada por objetos nao referenciados. c) Otimizar o uso de CPU durante a execucao. d) Eliminar erros de sintaxe no codigo. Resposta correta: b) Liberar memoria ocupada por objetos nao referenciados. Explicacao: O principal objetivo do garbage collection e liberar a memoria ocupada por objetos que nao sao mais acessados ou referenciados pelo programa, evitando vazamentos de memoria. Em quais linguagens de programacao o garbage collection e utilizado de forma automatica? a) C e C++. b) Java e C#. c) Python e Ruby. d) JavaScript e Go. Resposta correta: b) Java e C#. Explicacao: Linguagens como Java e C# implementam garbage collection de forma automatica, gerenciando a alocacao e liberacao de memoria sem a necessidade de intervencao do desenvolvedor. Qual e a diferenca entre "garbage collection" e "destrutores"? a) O garbage collection e um processo manual, enquanto os destrutores sao automaticos. b) O garbage collection e automatico e lida com a coleta de objetos, enquanto os destrutores sao responsaveis por liberar recursos de forma explicita. c) O garbage collection e usado apenas para limpar variaveis locais, enquanto os destrutores lidam com memoria global. d) Nao ha diferenca entre garbage collection e destrutores, ambos funcionam da mesma forma. Resposta correta: b) O garbage collection e automatico e lida com a coleta de objetos, enquanto os destrutores sao responsaveis por liberar recursos de forma explicita. Explicacao: O garbage collection e um processo automatico que limpa objetos nao utilizados, enquanto os destrutores sao metodos chamados explicitamente pelo programador para liberar recursos, como arquivos ou conexoes de rede. O que e uma "referencia circular" e como ela pode afetar o garbage collection? a) E quando duas ou mais variaveis referenciam uma a outra e o garbage collector pode nao conseguir detectar que essas variaveis podem ser coletadas. b) E quando o garbage collector tenta otimizar as referencias e remove objetos que sao referenciados circularmente. c) E quando o codigo causa uma falha no garbage collection por tentar criar referencias vazias. d) Nao tem impacto sobre o garbage collection. Resposta correta: a) E quando duas ou mais variaveis referenciam uma a outra e o garbage collector pode nao conseguir detectar que essas variaveis podem ser coletadas. Explicacao: Referencias circulares ocorrem quando dois ou mais objetos se referenciam mutuamente. Isso pode dificultar o trabalho do garbage collector, pois ele pode nao detectar que os objetos sao inacessiveis, embora existam referencias entre eles. O que e "coleta incremental" no contexto de garbage collection? a) Uma tecnica que realiza a coleta de lixo de forma continua durante a execucao do programa. b) Um processo onde o garbage collector realiza a coleta em varias etapas, pausando menos o programa. c) A coleta de lixo ocorre apenas quando o programa e finalizado. d) A coleta de lixo e feita apenas uma vez, mas em grandes volumes de memoria. Resposta correta: b) Um processo onde o garbage collector realiza a coleta em varias etapas, pausando menos o programa. Explicacao: A coleta incremental divide o processo de garbage collection em varias etapas pequenas, o que reduz as pausas longas no programa e melhora a performance em sistemas que exigem alta disponibilidade. Em sistemas com garbage collection, como a memoria e gerenciada quando um objeto e referenciado por diferentes partes do codigo? a) O garbage collector coleta o objeto assim que ele e referenciado, liberando sua memoria. b) A memoria do objeto e liberada imediatamente apos ser referenciado, independentemente de seu uso. c) O objeto e mantido na memoria enquanto houver referencias a ele. d) O objeto e removido automaticamente quando o programa termina. Resposta correta: c) O objeto e mantido na memoria enquanto houver referencias a ele. Explicacao: O garbage collector mantem o objeto na memoria enquanto ele tiver referencias ativas. Quando o objeto nao e mais referenciado, ele pode ser coletado. Quais sao os tipos principais de algoritmos de garbage collection?a) Coleta por contagem de referencias e coleta por marcacao e varredura. b) Coleta por tempo e coleta por acessibilidade. c) Coleta por otimizacao de CPU e coleta por otimizacao de memoria. d) Coleta por agrupamento e coleta por exclusao de objetos. Resposta correta: a) Coleta por contagem de referencias e coleta por marcacao e varredura. Explicacao: Os dois principais tipos de algoritmos de garbage collection sao a contagem de referencias, onde os objetos sao coletados quando suas referencias caem para zero, e a marcacao e varredura, onde