В настоящее время я пытаюсь исправить утечку памяти в своей программе, и мой мозг начинает выбросить OutOfOptions Exceptions. Программа создает много объектов, и я разыгрываю их с помощью object = null
, как только они больше не понадобятся, но почему-то использование памяти продолжает расти с течением времени. Теперь я спрашиваю себя, нужно ли мне пересматривать переменные внутри объекта.Как сборщик мусора в Java обрабатывает переменные внутри POJO?
Например:
public class Pojo {
private String foo;
private Integer bar;
private AnotherPojo anotherPojo;
public Pojo(String foo, Integer bar, AnotherPojo anotherPojo) {
this.foo = foo;
this.bar = bar;
this.anotherPojo = anotherPojo;
}
}
// ...
Pojo pojo = new Pojo("foo", 123, new AnotherPojo())
// ...
ли достаточно, чтобы сделать pojo = null
или я также должны разыменованием каждую переменную отдельно в объекте Pojo?
Возможный дубликат [Как работает сборка мусора Java с Циркулярными ссылками?] (Http://stackoverflow.com/questions/1910194/how-does-java-garbage-collection-work-with-circular-references) – Joe
как вы пытаетесь решить проблему с памятью, вы должны попробовать взять кучу сваливания на разные и проанализировать. какие объекты не получают сбор мусора – Panther