在servlet中,destroy()被调用first或finalize()?

时间:2009-06-22 10:43:30

标签: java servlets

在servlet中,在finalize()之前或之后调用destroy()?

5 个答案:

答案 0 :(得分:11)

首先调用destroy()。 servlet-container将在关闭servlet时调用destroy()。在垃圾收集器声明对象之前,JVM会调用finalize()(并且不保证完全被调用)。

答案 1 :(得分:3)

此外,可能会或可能不会调用finalize()。不要依赖于那种情况。

答案 2 :(得分:0)

当对象超出范围并符合垃圾回收条件时,将调用

finalize()方法。所以当对象没有超出范围时,destroy()方法肯定会在它之前调用。

答案 3 :(得分:0)

有以下5个步骤

  1. 构造
  2. 的init()
  3. service()>> doGet()或doPost()
  4. 破坏()
  5. 完成()

答案 4 :(得分:-1)

如果要在特定时间释放资源,请不要依赖servlet容器或JVM等外部代码来执行此操作。尽可能明确地进行资源分配和解除分配。令人讨厌的错误可能是因为依赖外部代码来清理你。