diff --git a/guide/russian/java/garbage-collection/index.md b/guide/russian/java/garbage-collection/index.md index 97378e539d..aa8a59298f 100644 --- a/guide/russian/java/garbage-collection/index.md +++ b/guide/russian/java/garbage-collection/index.md @@ -1,28 +1,28 @@ --- title: Garbage Collection -localeTitle: Вывоз мусора +localeTitle: Сборщик мусора --- -# Коллекция мусора в Java +# Сборщик мусора в Java -В таких языках, как C / C ++, разработчик обязан создавать и уничтожать объекты. Но если программист не выполняет свой долг, достаточная память может быть недоступна для создания нового объекта, и программа может закончиться **вызовом OutOfMemoryErrors** . +В таких языках, как C / C ++, создавать и уничтожать объекты - обязанность разработчика. Но если программист не выполняет свой долг, может возникнуть недостаток памяти для создания объекта, и программа может закончиться **вызовом OutOfMemoryErrors** . -Java освобождает программиста от задачи управления памятью и сама восстанавливает память, занятую объектами, которые больше не используются. Сбор мусора в java осуществляется демонами, называемыми **сборщиком мусора** . **JVM (виртуальная машина Java)** вызывает его, когда нехватка памяти (кучи) для новых объектов. +Java освобождает программиста от задачи управления памятью и сама восстанавливает память, занятую объектами, которые больше не используются. Сбор мусора в java осуществляется потоком-демоном, называемым **сборщиком мусора** . **JVM (виртуальная машина Java)** вызывает его, когда появляется нехватка памяти (в куче) для новых объектов. ## Когда объект становится пригодным для сбора мусора? -* Объект становится подходящим для коллекции мусора, если он недоступен ни от каких живых потоков или от каких-либо статических ссылок. -* Объект становится подходящим для коллекции мусора, если все ссылки являются нулевыми. +* Объект становится пригодным для сбора мусора, если он недоступен ни для каких живых потоков или каких-либо статических ссылок. +* Объект становится пригодным для сбора мусора, если все ссылки являются `null`. ```java Integer n = new Integer(); - n = null; //the Integer object is no longer accessible + n = null; //объект класса Integer больше не доступен ``` -* Циклические зависимости не считаются ссылкой, поэтому, если объект X имеет ссылку объекта Y, а объект Y имеет ссылку объекта X, и у них нет другой ссылки на живые ссылки, то оба объекта X и Y будут иметь право на сбор мусора. +* Циклические зависимости не считаются ссылкой, поэтому, если объект X ссылается на объект Y, а объект Y ссылается на объект X, и у них нет никаких других живых ссылок, то оба объекта X и Y уйдут в сборщик мусора. -## Как вручную сделать объект подходящим для коллекции мусора? +## Как вручную сделать объект подходящим для сбора мусора? -* Несмотря на то, что программист не уничтожает объекты, это хорошая практика программирования, чтобы сделать объект недоступным (таким образом, подходящим для GC) после его использования. +* Несмотря на то, что уничтожение объектов не входит в задачи программиста, сделать проект недоступным после его использования (а значит и пригодным для сборщика мусора) является хорошей практикой программирования. * Как правило, существует четыре разных способа сделать объект подходящим для сбора мусора. 1. Обнуление ссылочной переменной @@ -33,10 +33,10 @@ Java освобождает программиста от задачи упра ## Способы обращения к JVM для запуска сборщика мусора 1 * Хотя создание объекта, имеющего право на сбор мусора, зависит от единственного усмотрения JVM, чтобы запустить сборщик мусора, чтобы его уничтожить. -* Мы также можем запросить JVM для запуска сборщика мусора. Это можно сделать двумя способами: +* Мы также можем запросить JVM запустить сборщик мусора. Это можно сделать двумя способами: -1. Использование метода _**System.gc ()**_ : системный класс содержит статический метод gc () для запроса JVM для запуска сборщика мусора. -2. Использование _**метода Runtime.getRuntime (). Gc ()**_ : класс Runtime позволяет приложению взаимодействовать с JVM, в котором работает приложение. Следовательно, используя свой метод gc (), мы можем запросить JVM для запуска Collector мусора. +1. Использование метода _**System.gc ()**_ : системный класс содержит статический метод gc() для запроса JVM для запуска сборщика мусора. +2. Использование _**метода Runtime.getRuntime().gc()**_ : класс Runtime позволяет приложению взаимодействовать с JVM, в котором работает приложение. Следовательно, используя свой метод gc(), мы можем запросить JVM для запуска Collector мусора. ```java // Java program to request @@ -48,23 +48,23 @@ Java освобождает программиста от задачи упра Test test1 = new Test(); Test test2 = new Test(); - // Nullifying the reference variable + // Обнуление ссылки test1 = null; - // requesting JVM for running Garbage Collector + // запрос JVM запустить сборщик мусора System.gc(); - // Nullifying the reference variable + // Обнуление ссылочной переменной test2 = null; - // requesting JVM for running Garbage Collector + // запрос JVM запустить сборщик мусора Runtime.getRuntime().gc(); } @Override - // finalize method is a method which is called on object once - // before garbage collector is destroying it and reclaiming its memory + // метод finalize() запускается объектом единожды + // перед тем как сборщик мусора уничтожит его и восстановит занимаемую им память protected void finalize() throws Throwable { System.out.println("Garbage collector is called"); @@ -84,7 +84,7 @@ Java освобождает программиста от задачи упра Заметка : 1. Нет никакой гарантии, что любой из двух вышеперечисленных методов определенно будет запускать сборщик мусора. -2. Вызов System.gc () фактически эквивалентен вызову: Runtime.getRuntime (). Gc () +2. Вызов System.gc() фактически эквивалентен вызову: Runtime.getRuntime().gc() ## Финализация объектов @@ -105,4 +105,4 @@ Java освобождает программиста от задачи упра ### ИСТОЧНИКИ -1. [geeksforgeeks.](http://www.geeksforgeeks.org/garbage-collection-java/) Доступ: 24 октября 2017 года. \ No newline at end of file +1. [geeksforgeeks.](http://www.geeksforgeeks.org/garbage-collection-java/) Доступ: 24 октября 2017 года.