Atribuir NULL ao Objeto

Pessoal,

Estou com problemas frequentes, tipo a cada 3 ou 4 horas o meu tomcat para de responder, o motivo é Heap Memory (Tenured Gen) que fica com 100%, estou vendo pelo manager do tomcat.

Em algumas pesquisas eu vi que isso ocorre porque existem muitos objetos na memória, é isso mesmo?

Como devo fazer para ajustar isso no meu código?

Em alguns lugares eles dizem que é uma boa prática setar NULL no objeto após usalo, como assim? Seria como no exemplo abaixo?

@ManagedBean
@ViewScoped
public class PessoaBean implements Serializable {

	private static final long serialVersionUID = 1902384631923162403L;

	private Pessoa pessoa;
	private List<CargosFuncoes> cargos;
	
	public PessoaBean() {
		this.pessoa = new Pessoa();
		
		GlobalRN globalRN = new GlobalRN();
		this.cargos = globalRN.listaCargos();
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}
	
	public List<CargosFuncoes> getCargos() {
		return cargos;
	}

	public void setCargos(List<CargosFuncoes> cargos) {
		this.cargos = cargos;
	}

	public void gravar(){
		PessoaRN pessoaRN = new PessoaRN();
		this.pessoa = pessoaRN.salvar(this.pessoa);

		// Nesse momento devo setar null na lista de cargos e no objeto pessoa? Assim?
		this.pessoa = null;
		this.cargos = null;
	}
	
}

O que mais poderia eu poderia estar fazendo errado? Sou iniciante…

Obrigado!
Marcelo

Alguém teria alguma dica?

Valeu!

Amigo no caso a orientação a objeto funcionaria bem
se você instanciar um objeto da classe PessoaBean
e não ficar setando null dentro da classe PessoaBean… tipo assim

Classe Main{
PessoaBean pessoa = new PessoaBean();

 //aqui entra todo o código para trabalhar com o objeto pessoa...


 depois que trabalhar com o objeto, aí você faz
 pessoa = null;

 ou então melhor ainda pode fazer com que quando for iniciar a tela

do processo novamente ele cria um novo objeto pessoa fazendo com que
a instância antiga seja anulada
}

espero ter ajudado

lembre da orientação a objetos

Poxa cara dicas muito valiosas… Obrigado!

Mas uma coisa que não entendo, quando defino meu escopo com @ViewScoped, enquanto eu estiver nessa página o objeto vai existir, quando vou para outra página o objeto não deixa de existir?

Qual o melhor momento para setar null no objeto, isso que ainda não consegui entender… desculpe a ignorância!

Abs.