2015-04-17 4 views
0

В настоящее время я испытываю утечку памяти в своем коде, и я чувствую, что это из-за того, что я несколько раз получаю экземпляр класса, не закрывая его, вызывая множество случаев класс. Итак, мой вопрос: есть ли способ закрыть экземпляр класса, который я получаю? Я получаю экземпляр, как например: public static MyClass getInstance() { return new MyClass(); }Java | Закрытие экземпляра класса

И тогда я получить экземпляр класса, выполнив: MyClass instance = MyClass.getInstance();

Так что я полагаю, что я прошу, если есть что-то вроде .close(); метод закрытия моего экземпляра.

Спасибо.

+1

Сбор мусора определенно, поэтому вам не нужно делать это, чтобы освободить память. – user2357112

+0

можете ли вы предоставить еще какой-нибудь код? просто факт, что вы создаете объекты, не даст вам утечки памяти. –

+0

Оставьте остальную часть кода, здесь этого недостаточно, кроме как увидеть, что вы внедрили шаблон фабрики/строителя. –

ответ

0

В Java есть автоматический сборщик мусора, поэтому, если вы больше не ссылаетесь на объект, он будет удален из памяти.

Возможно, вы случайно захотите хранить ссылки или хранить слишком много сразу или какую-то другую проблему.

Также не отлаживайте инстинкт кишки, вставьте профайлер или отладчик туда и выясните, откуда исходит ваша утечка памяти! Удачи!

+0

Если он удаляет неиспользованную память, то как формируется утечка памяти, несколько запутанная. – TheCoder24

+0

Ну, если вы сохранили ссылки, они по-прежнему считаются используемой памятью. На самом деле довольно сложно создать утечку памяти в Java. Проверьте этот вопрос: http://stackoverflow.com/questions/6470651/creating-a-memory-leak-with-java –

Смежные вопросы