| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 00:01:19
|
cu_ringa
Virtual Machine Man
![[Avatar]](/images/avatar/d72fbbccd9fe64c3a14f85d225a046f4.png)
Membro desde: 27/08/2003 00:19:11
Mensagens: 602
Localização: Natal-RN
Offline
|
tava fazendo o teste da Caleum e me deparei com a seguinte questão e n entedi a resposta.
respostas:
a resposta correta é a 5.
Se crio 10 objetos Objects dentro de um metodo e naum tem nenhuma referência global a esses objetos, num era p morrer depois de chamar o metodo naum ? E além disso o escopo é o laço "for", q é menor ainda.
|
"O que levamos desta vida, é a vida que a gente leva". |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 08:12:15
|
thiagomont
JavaChild
Membro desde: 02/05/2007 00:49:04
Mensagens: 139
Offline
|
blz?
Na verdade o objeto não morre automaticamente. O objeto é deixado disponível para o garbagge collector. Porém o garbagge collector será executado apenas quando o sistema operacional der prioridade na thread dele. Ou seja é impossível de determinar quantos objetos vão existir após a execução do código, visto que não podemos determinar quando o garbagge collector será executado.
Existe um comando (System.gc() que pede para o sistema operacional rodar o collector, porém não é garantia que será executado naquele momento.
Espero ter ajudado.
|
Thiago Amaral Monteiro
Analista de Sistemas - SERPRO
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 08:15:50
|
eduveks
GUJ Ranger
![[Avatar]](/images/avatar/bce9abf229ffd7e570818476ee5d7dde.png)
Membro desde: 19/04/2005 07:45:40
Mensagens: 831
Localização: Lisboa - Portugal
Offline
|
Bem pelo q sei, não é possível determinar por q o Garbage Collection não limpa na hora.
Mais ou menos assim, tu executa o método, e ele coloca numa lista tudo q tem q ser removido da memória, mas não vai remover já, vai remover quando for uma boa altura, e ai começa a remover, mas pode não remover tudo de uma vez, depende, o Garbage Collection faz tudo de maneira a não influenciar o desempenho da aplicação, por isso ele vai fazendo estas tarefas nas brexas.
Qualquer coisa me corrijam por favor, tb não tenho a certeza absoluta se é assim, mas é a idéia q tenho.
|
http://www.cajuscript.org
http://eduveks.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 08:30:22
|
thiagomont
JavaChild
Membro desde: 02/05/2007 00:49:04
Mensagens: 139
Offline
|
Complementando a resposta do eduveks realmente não é possivel determinar quando será executado por ser uma thread de baixa prioridade.
Ao executar o System.gc() o sistema operacional é que vai determinar se será executado no mesmo momento ou não.
|
Thiago Amaral Monteiro
Analista de Sistemas - SERPRO
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 09:01:30
|
maquiavelbona
JWizard
![[Avatar]](/images/avatar/24bea84d52e6a1f8025e313c2ffff50a.jpg)
Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline
|
Só fazendo um adendo. Não há um padrão para execução do GC e mesmo quando "sugeres" a ele rodar, não há garantias que ele fará naquele momento. Os objetos só são recolhidos definitivamente na segunda vez que o mesmo rode. Na primeira vez, ele marca para coleta todos os objetos que podem ser coletados, na segunda vez ele executa o método finalize() do objeto e o recolhe logo em seguida. Se por algum motivo o método finalize não permitir o recolhimento do objeto (por exemplo, refazendo a referência do objeto), o método não é executado uma segunda vez, mesmo que o GC seja executado mais N vezes.
Para mais informações, procurar no fórum, na parte de Artigos/Tutoriais por Garbage Collector.
Até!
|
----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)
"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781) |
|
|
 |
|
|