Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
56_Java.pdf
Скачиваний:
210
Добавлен:
18.02.2016
Размер:
2.39 Mб
Скачать

Скачано с сайта http://ivc.clan.su

3.Этап останова

Данный этап противоположен этапу запуска. На протяжении жизненного цикла этап останова может выполняться множество раз. JVM браузера выполняет останов апплета (завершение потока вычислений), когда пользователь покидает страницу с апплетом и обращается к другой странице (либо осуществляет обновление страницы с апплетом, либо сворачивает окно апплета). На этом этапе JVM браузера вызывает метод stop() (в теле которого выполняется завершение потока вычислений, если апплет выполнялся в собственном потоке).

4.Этап уничтожения

Данный этан противоположен этапу инициализации и, подобно этапу инициализации, выполняется только один раз. Когда память браузера переполняется или происходит закрытие окна браузера, освобождаются все ресурсы апплета. Непосредственно перед освобождением выделенной для апплета памяти JVM браузера вызывает его метод destroy(). Метод по своему назначению подобен деструктору класса в C++ (деструкторы в классах Java отсутствуют!), его можно использовать для освобождения ресурсов, занятых апплетом.

Внимание! В различных браузерах поддерживается неодинаковый порядок вызова некоторых методов жизненною цикла апплета при переключении между окнами. Например, в MS IE Java-машина браузера создает новый экземпляр апплета при возврате на страницу с апплетом после перехода на другую страницу, при обновлении страницы с апплетом. При этом после stop, destroy вызываются init, start.

Этап рисования (перерисовки) окна апплета

Выполняется между этапами запуска и останова многократно: сразу после запуска и в моменты восстановления или изменения изображения апплета (при прокручивании страницы в окне браузера, сворачивании/перекрытии окна апплета и восстановлении).

Каждый апплет имеет метод paint(), который управляет содержимым окна апплета. Класс java.applet.Applet наследует этот метод от класса java.awt.Component. В апплете метод paint() переопределяется. Методу в качестве параметра передается объект типа java.awt.Graphics, который хранит графический контекст апплета.

Явный вызов метода paint() в коде апплета присутствовать не может. Метод вызывается: при выполнении JVM браузера этапа перерисовки;

при вызове в апплете метода repaint(), который заставляет JVM вызвать метод update() апплета, который, в свою очередь, по умолчанию вызывает paint().

Отличия Java от C++

Конструкторы классов

В программах на Java можно вообще не писать конструкторы классов. (Например, в классах,

производных от класса java.applet.Applet, конструктор не определяется.) В случае отсутствия конструкторов компилятор по умолчанию создаёт для класса конструктор без параметров, из которого вызывается конструктор без параметров суперкласса (базового класса). Если конструктор без параметров у суперкласса отсутствует, то при компиляции возникает ошибка.

«Сборщик мусора»

В отличие от C++, деструкторы в классах Java фактически отсутствуют. Программисты Java

избавлены от необходимости следить за использованием памяти и освобождать ненужные области памяти явным образом. JVM использует специальную программу очистки памяти garbage collector (gc)

— «сборщик мусора». Эта программа запускается периодически и работает в фоновом режиме. Она просматривает память и выявляет неиспользуемые объекты. Объект удаляется из памяти, как только на него не остаётся ни одной ссылки из других объектов.

Когда необходимо, чтобы при освобождении памяти, занимаемой некоторым объектом, был вызван определённый код, используется метод finalize(), который наследуется всеми классами Java от класса java.lang.Object. Перед удалением объекта «сборщик мусора» вызывает метод finalize().

6

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]