Почему следует избегать метода finalize?

Оглавление:

Почему следует избегать метода finalize?
Почему следует избегать метода finalize?

Видео: Почему следует избегать метода finalize?

Видео: Почему следует избегать метода finalize?
Видео: Java. Многопоточность. Методы wait и notify. Блокирующая очередь и Worker Thread. 2024, Декабрь
Anonim

Даже в нашей программе не удается запустить метод finalize для всех 3-х потоков. «Этот метод по своей сути небезопасен. Он может привести к тому, что финализаторы будут вызываться для живых объектов, в то время как другие потоки одновременно манипулируют этими объектами, что приводит к неустойчивому поведению или взаимоблокировке».

Почему следует избегать метода finalize C?

Метод Finalize объекта не должен вызывать метод для каких-либо объектов, кроме объекта его базового класса. Это связано с тем, что другие вызываемые объекты могут быть собраны одновременно с вызывающим объектом, например, в случае отключения общеязыковой среды выполнения.

Должны ли мы переопределить метод Finalize?

Метод finailze должен быть переопределен, чтобы объект включал код очистки или избавлялся от системных ресурсов, которые необходимо выполнить перед сборкой мусора.

Что произойдет, если метод Finalize вызовет исключение?

Если методом finalize генерируется необработанное исключение, исключение игнорируется, и завершение этого объекта завершается. … Любое исключение, созданное методом finalize, приводит к остановке финализации этого объекта, но в противном случае игнорируется.

Какова цель метода finalize?

Метод finalize класса Object - это метод, который сборщик мусора всегда вызывает непосредственно перед удалением/уничтожением объекта, подходящего для сбора мусора, чтобы выполнить очистку.

Рекомендуемые: