[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-kak-rabotaet-sborshchik-musora":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":21,"progress":22,"seo":23},51,"kak-rabotaet-sborshchik-musora",2,"java-core","Java Core","☕","Как работает сборщик мусора?","Механизм сборки мусора - это процесс освобождения места в куче, для возможности добавления новых объектов.\n\nОбъекты создаются посредством оператора `new`, тем самым присваивая объекту ссылку. Для окончания работы с объектом достаточно просто перестать на него ссылаться, например, присвоив переменной ссылку на другой объект или значение `null`; прекратить выполнение метода, чтобы его локальные переменные завершили свое существование естественным образом. Объекты, ссылки на которые отсутствуют, принято называть мусором (garbage), который будет удален.\n\nВиртуальная машина Java, применяя механизм сборки мусора, гарантирует, что любой объект, обладающий ссылками, остается в памяти — все объекты, которые недостижимы из исполняемого кода, ввиду отсутствия ссылок на них, удаляются с высвобождением отведенной для них памяти. Точнее говоря, объект не попадает в сферу действия процесса сборки мусора, если он достижим посредством цепочки ссылок, начиная с корневой (GC Root) ссылки, т.е. ссылки, непосредственно существующей в выполняемом коде.\n\nПамять освобождается сборщиком мусора по его собственному «усмотрению». Программа может успешно завершить работу, не исчерпав ресурсов свободной памяти или даже не приблизившись к этой черте и поэтому ей так и не потребуются «услуги» сборщика мусора.\n\nМусор собирается системой автоматически, без вмешательства пользователя или программиста, но это не значит, что этот процесс не требует внимания вовсе. Необходимость создания и удаления большого количества объектов существенным образом сказывается на производительности приложений и, если быстродействие программы является важным фактором, следует тщательно обдумывать решения, связанные с созданием объектов, — это, в свою очередь, уменьшит и объем мусора, подлежащего утилизации.","","middle",[15,16,17,18,19,20],"JVM","core","GC-Root","garbage-collector","GC","память",[],null,{"title":24,"description":25,"ogTitle":26,"ogDescription":27,"keywords":28,"schemaAnswer":33,"featuredSnippetReady":34},"Как работает сборщик мусора в Java — механизм GC — Gymterview","GC освобождает место в куче. Объекты без ссылок (недостижимые из GC Root) считаются мусором и удаляются автоматически виртуальной машиной.","Как работает Garbage Collector в Java?","GC освобождает кучу от объектов, недостижимых из GC Root. Работает автоматически, без вмешательства программиста, но влияет на производительность.",[29,30,31,32],"как работает GC Java","механизм сборки мусора","GC Root Java","garbage collection принцип","Сборка мусора — процесс освобождения места в куче (heap). Объекты создаются оператором new, для завершения работы с объектом достаточно убрать все ссылки на него. JVM гарантирует, что объект с ссылками остаётся в памяти, а недостижимые из GC Root объекты удаляются. Память освобождается по усмотрению сборщика. Создание и удаление большого количества объектов влияет на производительность.",true]