В сервлете destroy () вызывается first или finalize ()? - PullRequest
3 голосов
/ 22 июня 2009

В сервлете вызывается ли destroy () до или после finalize ()?

Ответы [ 5 ]

11 голосов
/ 22 июня 2009

destroy () вызывается первым. destroy () будет вызван сервлет-контейнером во время остановки сервлета. finalize () вызывается JVM до того, как сборщик мусора запросит объекты (и вовсе не обязательно будет вызван).

3 голосов
/ 22 июня 2009

Кроме того, finalize () может вызываться или не вызываться. Никогда не надейся на это.

0 голосов
/ 22 октября 2015

Там следующие 5 шагов

  1. Конструктор
  2. Init ()
  3. service () >> doGet () или doPost ()
  4. уничтожить ()
  5. завершить ()
0 голосов
/ 22 июня 2009

Если вы хотите освободить ресурсы в определенное время, не зависите от внешнего кода, такого как контейнер сервлета или JVM, для этого. Делайте ваше распределение ресурсов как можно более явным. Противные ошибки могут быть результатом зависимости от внешнего кода, который нужно очистить после вас.

0 голосов
/ 22 июня 2009

Метод finalize () будет вызван, когда объект выйдет из области видимости и будет доступен для сборки мусораТак что метод destroy () определенно вызывается перед ним, когда объект не выходит из области видимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...