Путь разработчика    

Как настроить объект на null, помогая сборке мусора?


Не обязательно. Объект становится пригодным для сбора мусора, когда нет живых потоков, которые содержат ссылку на объект.

Явное обнуление - это просто практика установки ссылочных объектов на нуль, когда вы закончите с ними. Идея обнуления заключается в том, что она помогает сборщику мусора, делая объекты недоступными ранее. GC (сбор мусора) в Java в эти дни очень умный, и все должно быть очищено очень скоро после того, как оно больше не доступно. Это сразу после того, как вы оставили метод для локальных переменных и когда экземпляр класса больше не ссылается на поля.

Явно устанавливая ссылку на null вместо того, чтобы просто отключить переменную, не помогает сборщику мусора, если только объект не имеет большого размера. Локальные переменные выходят за пределы области, когда метод возвращается, и нет смысла вообще устанавливать локальные переменные в нуль - переменные исчезают в любом случае, и если нет ничего, что содержит ссылку на объекты, на которые ссылаются переменные, то эти объекты становятся для сбора мусора.

Объект доступен, если он может быть задействован в любом потенциальном продолжающемся вычислении. Поэтому, если ваш код относится к локальной переменной, и ничто другое не ссылается на него, вы можете заставить объект собираться, установив его в null. Это приведет либо к исключению нулевого указателя, либо изменит поведение вашей программы, либо если вам это не понадобится, вам не нужна переменная в первую очередь. Трюки, такие как явное обнуление или объединение объектов, которые когда-то считались разумными методами повышения производительности, больше не нужны или не полезны (и могут даже быть вредными), поскольку стоимость распределения и сбора мусора значительно сократилась.

Источник: http://net-informations.com/Java/cJava/objectonull.htm



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Добавление метода расширения в класс Graphics в C#

По какой-то странной причине метод DrawRectangle класса Graphics не может принимать параметр RectangleF в качестве параметра. Он может принимать значения R...

14 09 2019 7:47:37

Delphi 6. Учебный курс (В. В. Фаронов)

В книге "Delphi 6. Учебный курс" даются начальные сведения по системе программирования Delphi, разработанной американской корпорацией Borland International...

13 09 2019 11:29:11


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69