Duvida sobre Garbage Collection Java

1 resposta
java
Fernand0bboy

Quando eu declaro objetos dentro de uma classe e através de outra classe eu faço a instancialização dessa que tem os objetos, quando o garbage collection atua ele pega os objetos declarado? por exemplo, tenho esses dois exemplos abaixo o primeiro ele coleta apenas um objeto e o segundo? ele coleta 1 ou 3?

class Obj1{

}
public class A{

public static void main(String [] args){

Obj1 obj1 =  new Obj1();
Obj1 ob2  =  obj1;
obj1 = null;
obj2 = null;
//Neste exemplo um objeto foi coletado
   } 
}

class Obj1{
 int[] array = new int[3];
 Obj2 obj2 = new Obj2();

}
public class A{

public static void main(String [] args){

Obj1 obj1 =  new Obj1();
Obj1 ob2  =  obj1;
obj1 = null;
obj2 = null;
//Neste exemplo qual o numero de objeto coletado ? 3 ? ou 1?
   } 
}

1 Resposta

Jonathan_Medeiros

Todos objetos alocados em memória se não possuírem nenhuma referência, ou seja, objeto == null, o Garbage Collector (Coletor de Lixo) faz o seu trabalho.

Exemplo:

Integer num = new Integer(1); //aqui temos a instância de um objeto do tipo inteiro
num = null; //aqui o objeto não possuí mais referência, ou seja, ele permite que a memória ocupada seja liberada

O mesmo processo ocorre no seu exemplo.

Criado 24 de julho de 2017
Ultima resposta 25 de jul. de 2017
Respostas 1
Participantes 2