Нет способа реализовать метод finalize()
, который будет выполняться , независимо от того, что , потому что JVM не гарантирует его вызова. Например, объекты, оставленные в куче при выходе из программы, могут никогда не вызывать свой метод finalize()
, в зависимости от текущей JVM.
Как правило, не рекомендуется использовать finalize()
для освобождения любых ресурсов, кроме памяти, а тем более делать что-либо кроме освобождения ресурсов. Если вы хотите сериализовать свои объекты, попробуйте выбрать другой момент времени.
Есть хорошая статья , в которой обобщено почти все, что вам нужно знать о финализаторах.