# 里程碑的方法

> 原文： [https://docs.oracle.com/javase/tutorial/deployment/applet/appletMethods.html](https://docs.oracle.com/javase/tutorial/deployment/applet/appletMethods.html)

[`Applet`](https://docs.oracle.com/javase/8/docs/api/java/applet/Applet.html) 类为 applet 执行提供了一个框架，定义了里程碑发生时系统调用的方法。里程碑是 applet 生命周期中的重大事件。大多数 applet 覆盖部分或全部这些方法，以适当地响应里程碑。

## `init`方法

`init`方法对于不需要很长时间的一次性初始化非常有用。 `init`方法通常包含通常放入构造函数的代码。 applet 通常不具有构造函数的原因是，在调用`init`方法之前，它们不能保证具有完整的环境。保持`init`方法简短，以便您的 applet 可以快速加载。

## `start`方法

初始化后执行任务的每个 applet（直接响应用户操作除外）都必须覆盖`start`方法。 `start`方法开始执行 applet。最好从`start`方法快速返回。如果您需要执行计算密集型操作，最好为此目的启动一个新线程。

## `stop`方法

大多数覆盖`start`的小程序也应该覆盖`stop`方法。 `stop`方法应该暂停 applet 的执行，这样当用户没有查看 applet 的页面时它就不会占用系统资源。例如，显示动画的小程序应该在用户未查看动画时停止尝试绘制动画。

## `destroy`方法

许多小程序不需要覆盖`destroy`方法，因为它们的`stop`方法（在`destroy`之前调用）将执行关闭小程序执行所需的所有任务。但是，`destroy`方法适用于需要释放其他资源的 applet。

* * *

**Note:** Keep implementations of the `destroy` method as short as possible, because there is no guarantee that this method will be completely executed. The Java Virtual Machine might exit before a long `destroy` method has completed.

* * *