- •Особенности языка Java
- •История Java
- •Характерные особенности Java
- •Разработка и выполнение Java приложения:
- •Понятие среды выполнения Java
- •Переносимость языка Java
- •Высокая производительность языка Java
- •Типы Java-приложений
- •Автономное (самостоятельное) приложение – application
- •Апплет – applet
- •Комбинированное приложение
- •Сервлет – servlet
- •Мидлет – midlet
- •Различия между автономными приложениями и апплетами
- •Автономное приложение
- •Апплет
- •Этапы жизненного цикла апплета
- •Этапы жизненного цикла в соответствии со стандартом Sun:
- •Этап инициализации
- •Этап запуска
- •Этап останова
- •Этап уничтожения
- •Этап рисования (перерисовки) окна апплета
- •Отличия Java от C++
- •Конструкторы классов
- •«Сборщик мусора»
- •Типы данных в Java
- •Простые типы
- •Ссылочные (объектные) типы
- •Строки в Java
- •Массивы в Java
- •Классы в Java
- •Особенности реализации
- •Пакеты
- •Управление доступом к элементам класса
- •Поля класса
- •Методы
- •Перегрузка и переопределение методов
- •Ключевые слова THIS и SUPER
- •Интерфейсы в Java
- •Понятие Java API
- •Пакеты ядра Java API (в JDK 1.0):
- •Развитие ядра Java API (в новой версии JDK и в Java 2)
- •Основные понятия AWT
- •Компоненты
- •Контейнеры
- •Компоновки. Менеджеры компоновки
- •События
- •События. Обработка событий
- •Иерархия классов-событий
- •Семантические события и их источники-компоненты AWT
- •Модель делегирования событий
- •Методы, объявленные в интерфейсах для семантических событий
- •Способы реализации блока прослушивания событий от AWT-компонента
- •Понятие класса-адаптера
- •Комбинированное приложение Java. Обработка события WindowEvent
- •Исключения в Java и их обработка
- •Иерархия классов исключений
- •Различия между исключениями Exception и ошибками Error
- •Организация обработки исключений в программе
- •Используемые операторы:
- •Как правильно организовывать обработку исключений
- •Понятия процесса и потока
- •Конструкторы класса Thread
- •Наиболее важные методы класса Thread
- •Способы создания потоков
- •Синхронизация потоков
- •Когда следует использовать синхронизацию потоков?
- •Механизм блокировки объекта
- •Способы использования ключевого слова synchronized
- •Синхронизированные методы
- •Оператор synchronized
- •Преимущества оператора synchronized:
- •Взаимодействие потоков: использование методов wait(), notify(), notifyAll()
- •Стандартные образцы кода использования методов
- •Поток-диспетчер событий AWT
- •Потоки и исключения
- •О группах потоков
- •Технология компонентного программирования JavaBeans
- •Понятие технологии компонентного программирования
- •Этап компиляции
- •Этап разработки
- •Этап создания приложения
- •Этап выполнения
- •Понятие компонентной модели
- •Основные требования к классам Bean-компонентов
- •Соглашения об именах
- •Соглашения об именах для свойств
- •Соглашения об именах для событий
- •Соглашения об именах для методов
- •Использование событий для управления свойствами
- •Связанные свойства
- •Преобразование обычного свойства в связанное
- •Ограниченные свойства
- •Преобразование обычного свойства в ограниченное
- •Ввод-вывод в Java: основные понятия
- •Основные группы классов и интерфейсов пакета java.io
- •Фильтрованные потоки
- •Буферизированные потоки
- •Принципы работы Buffered-потоков
- •Входные потоки
- •Выходные потоки
- •Канальные потоки
- •Синхронизация потоков данных
- •Понятие отражения (рефлексии)
- •Класс java.lang.Class
- •Классы пакета java.lang.reflect
- •Понятие интроспекции
- •Понятие сериализации
- •Обеспечение сериализуемости Bean
- •Выполнение базовой сериализации
- •Пример с сериализацией (см. SerializationDemo.java)
- •Настройка сериализации
- •Методы readObject и writeObject
- •Интерфейс Externalizable
- •Создание экземпляров сериализованных Bean
- •Приложение
- •// Файл HelloApplet.java
- •// Файл MyApplet.java
- •// Файл StringDemo.java
- •// Файл ConstrDemo.java
- •// Фрагменты файла AnimBallsPlus.java
Скачано с сайта 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