Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586

Finalize()

10.04.2016, 22:08. Показов 708. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Хочу поговорить про этот метод и задать несколько вопросов.
На сколько мне известно, данный метод всегда вызывается сборщиком мусора перед освобождения памяти объектом (чтобы сделать завершающие действия)...... ВОПРОС: какие примеры можете привести, где есть необходимость завершения дополнительных дейтвий перед освобождением памяти (из вашего опыта). Мне известен такой случай, когда вызывается метод не java-кода, а к примеру с++ где метод может породить объект и нужно будет вызвать деструктор, который как раз надо прописать в finalize() для освобождения памяти??????

Так же известно что сборщик мусора не всегда вызывается, следовательно не всегда вызывается метод finalize() для очистки мусора, это связано с тем что программа не доходит до критической ситуации, когда нужно освободить память, ибо чистка подключает некие издержки/затраты при выполнении. Если программа выполнилась и не очистила память (не дошла до критической точки) то память после выполнения программы освобождается операционной системой. Сборщик мусора содержит счетчик на ссылки которые указывают на объекты, при создании нового происходит инкремент, при удалении обратная ситуация. ВОПРОС: если я не хочу полагаться на finalize() и сборку мусора, а хочу явно освободить память объекта, то как мне быть??? В плюсах на сколько я знаю явным образом освобождение происходит вызовом деструктора??? И когда наступает эта самая критическая точка, которая вынуждает производить сборку мусора?????

Возможно у меня есть какие-либо заблуждения. Буду благодарен кто поделится своим опытом и подчеркнет меня если на то есть заблуждения. Спасибо!

Добавлено через 56 минут
Цитата Сообщение от Левиафам Посмотреть сообщение
а хочу явно освободить
нарыл что если воспользоваться System.gc() то во время выполнения метод позволит явно вызвать сборку мусора и финализацию
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2016, 22:08
Ответы с готовыми решениями:

finalize()
Вот во многих местах инета натыкаюсь на такой совет типа: "финализаторы это плохо", "финализаторы - это зло", ...

Finalize не вызывается
public class Main { public static void main(String args) { A a = new A(); WeakReference<A> weakReference =...

Переопределить to string() и finalize()
Здравствуйте! Я новичок в программировании на Java. Да и в программировании несильна) Вот код программы: import static...

4
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
10.04.2016, 22:38
Цитата Сообщение от Левиафам Посмотреть сообщение
если воспользоваться System.gc() то во время выполнения метод позволит явно вызвать сборку мусора и финализацию
это не так. После вызова этого метода, JVM сделает все возможное для сборки мусора однако никто не гарантирует вызов GC и соотв. вашего метода.

Вообще в 99.9% если вам нужен метод Finalize, вы делаете что-то не так.
1
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
11.04.2016, 00:21
Цитата Сообщение от Левиафам Посмотреть сообщение
Всем привет! Хочу поговорить про этот метод и задать несколько вопросов.
Забудь про этот метод. http://howtodoinjava.com/core-... d-in-java/
1
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
11.04.2016, 09:18  [ТС]
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
JVM сделает все возможное для сборки мусора однако никто не гарантирует вызов GC и соотв
а что может ограничить этот метод? Какие обстоятельства могут заставить его не сработать?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
11.04.2016, 09:47
Цитата Сообщение от Левиафам Посмотреть сообщение
а что может ограничить этот метод? Какие обстоятельства могут заставить его не сработать?
без понятия. Я этот вопрос не изучал в деталях
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.04.2016, 09:47
Помогаю со студенческими работами здесь

Как устроен метод finalize()
public class Book { boolean checkedOut = false; Book(boolean checkOut){ checkedOut = checkOut; } void checkIn(){ ...

Чем отличаются finalize() и dispose()?
чем отличаются finalize() и dispose() ?

Работа с Office, Finalize() и Dispose()
Здравствуйте. Насколько понимаю, работа в С# c MS Office идет через не управляемые ссылки, так использыется для этого библиотека...

Разница между Dispose и Finalize
Если на собеседовании меня спросят какая разница между Dispose и Finalize что ответить? Честно говоря я не до конца понял что это.

Порядок выполнения Finalize и внутренние объекты
Доброго времени суток! Есть класс(не static), в классе определенно static поле - ссылка на другой объект(внутренний объект)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru