- •Особенности языка 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
6) По умолчанию приложение имеет полный доступ к системным ресурсам. Требует установки менеджера безопасности (Security Manager) для ограничения доступа к ресурсам системы (файлам, сетевым соединениям, другим программам).
Апплет
1)Не требует установки на локальной машине, может загружаться с Web-сервера.
2)Выполняется в среде Web-браузера, в который встроена JVM. Наиболее известные браузеры являются Java-совместимыми. Апплет включается в HTML-страницу с помощью элемента <APPLET>
</APPLET>
3)Использует только графический интерфейс пользователя.
4)Метод main отсутствует. Апплет создаётся как открытый (public) производный класс класса java.applet.Applet и наследует все его методы, в том числе методы жизненного цикла init(), start(), stop(), destroy(). Методы жизненного цикла вызываются JVM браузера на соответствующих стадиях существования апплета. Этапы жизненного цикла апплета: инициализация, запуск, останов,
уничтожение.
5)Апплет получает параметры из HTML-файла, где они указываются с помощью тегов <PARAM> внутри элемента <APPLET> </APPLET>. Доступ к параметру может быть выполнен с помощью метода getParameter(), который апплет наследует от класса Applet.
6)Встроенная JVM-браузера по умолчанию работает с менеджером безопасности и реализует модель безопасности Sandbox («песочница»). «Песочница» существенно ограничивает функциональные возможности апплета. Не разрешены такие потенциально опасные действия как операции, связанные с управлением файлами, сетевым управлением. Апплет, например, не имеет доступа к файловой системе (жесткому диску), может выполнять сетевое подключение только к машине, с которой был загружен. Возможности апплетов могут быть расширены благодаря реализации в Java 2 более гибкой
конфигурируемой модели безопасности. Апплеты могут подписываться электронной цифровой подписью. В файлах политики безопасности (например jdk\jre\lib\security\java.policy) для подписанных апплетов могут быть определены права доступа к ценным ресурсам системы.
Этапы жизненного цикла апплета
Любой апплет, выполняемый в среде браузера, имеет жизненный цикл, состоящий из 4(+1) этапов. Каждому этапу соответствует метод, наследуемый от класса java.applet.Applet, который можно переопределить. Переопределение метода жизненного цикла дает возможность выполнить необходимые действия на соответствующем этапе существования апплета (см. «скелетную схему» апплета в примере MyApplet.java).
Этапы жизненного цикла в соответствии со стандартом Sun:
1.Этап инициализации
На протяжении жизненного цикла инициализация выполняется только один раз. На этом этапе JVM браузера загружает класс и создает объект апплета (экземпляр класса), для которого далее вызывает метод init(). Данный метод предназначен для размещения кода, обеспечивающего выполнение необходимой инициализации апплета. Такой код обычно помещается в конструкторе класса, но для класса апплета, как правило, конструктор определять не требуется.
2.Этап запуска
На данном этапе начинается выполнение апплета (создается и запускается так называемый поток вычислении - thread). Этап запуска следует сразу же после этапа инициализации при первом появлении на экране HTML-страницы с апплетом. Если пользователь, работая с браузером, переходит к просмотру другой страницы и затем возвращается к странице с апплетом, этап запуска повторяется. На протяжении жизненного цикла этап запуска может выполняться множество раз. На этом этапе JVM браузера вызывает метод start() (в теле которого создается и запускается поток вычислений, если необходимо, чтобы апплет выполнялся в собственном потоке). В классах простых апплетов данный метод не переопределяется.
5