- •Понятие информационного ресурса. Ит: определение, способы использования
- •2. Цель, методы и средства создания информационных ресурсов(ир)
- •1. Математические – совокупность моделей разного уровня(от глобальных моделей принятия решения до частных моделей реализации информационных процессов);
- •2. Технические – средства реализации информационных процессов. Сюда входят вычислительные машины и средства на их основе;
- •3. Алгоритмические – алгоритмы реализации математических средств;
- •3. Протоколы tcp/ip применительно к ир
- •4. Сеть, структура сети, маска подсети
- •5. Мосты в сетях tcp/ip. Доменные имена узлов.
- •7. Архитектура «Клиент-сервер»
- •Преимущества
- •Недостатки
- •8. Архитектура Intranet.
- •6. Архитектура mainframe
- •9. Программирование в web: доступ к бд на стороне сервера.
- •10. Программирование в web: доступ к бд на стороне клиента.
- •11. Синтаксис url. Протокол http.
- •12. Передача данных форм. Кодирование в url.
- •13. Стандартный ввод и метод Post.
- •14. Интерфейс Windows cgi. Файлы данных cgi.Интерфейс Windows cgi.
- •15 Файлы данных cgi.
- •15. Обработка результатов на сервере в сети при передаче данных.
- •16. Директивы включения на стороне сервера (ssi).
- •17. Понятие безопасности web-сервера. Принципы безопасности web-сервера.
- •18. Решение вопросов безопасности для web-сервера.
- •19. Характеристики языка Java.
- •20 Байткоды.
- •21 Средства разработки Java.
- •22 Базовая модель Java 1.0.
- •23 Типы данных, переменные и массивы в Java. Преобразование типов в Java. Типы данных
- •Массивы
- •24. Область видимости и время жизни переменных в Java.
- •25. Классы Java. Определение класса в Java. Создание объекта класса.
- •26 Методы Java. Определение методов в Java. Конструкторы Java.
- •27 Перегрузка методов в Java. Перегрузка конструкторов в Java.
- •28 Использование объектов в качестве параметров.
- •29 Использование ключевого слова this
- •30 Механизм финализации в Java. Сбор мусора.
- •31 Апплеты в Java. Характеристики апплетов.
- •32 Структура аплета.
- •33 Тэги апплета.
- •34 Обработка событий апплета, методы апплета.
- •События, генерируемые клавиатурой
- •35 Методы апплетов в Java.
- •36 Модели обработки событий Java 1.0.
- •37 Размещение объектов для графического пользовательского интерфейса. Диспетчера компоновки
- •38 Использование меню. Окна Frame
- •39 Работа с изображениями.
- •40 Динамическая диспетчеризация методов в Java.
- •41 Абстрактные классы в Java.
- •42 Классы Vector и Rectangle.
- •43 Многопоточное программирование в Java.
- •44 Создание потока. Синхронизация потоков в Java
- •45 Классы пакетов java.Io и java.Net.
- •46 Ввод и вывод в Java
- •47 Новые пакеты Java и особенности Java 1.1
- •48 Встроенные классы и интерфейсы в Java
- •49 Классы-члены в Java
- •50 Новый синтаксис для классов-членов
- •51 Локальные классы
- •52 Анонимные классы.
- •53 Модель обработки событий Java 1.1.
- •55. Использование jar-файлов
- •61. Безопасность Ява-программ
- •Защита виртуальной машины Ява. Верификация файлов ява-программ
- •62. Контроль доступа в Ява с использованием технологии «песочницы»
42 Классы Vector и Rectangle.
Массивы в Java имеют фиксированную длину и необходимо заранее определить его размер. Есть механизм, который позволяет задать массив переменной длины. Для этого используется класс Vector.
Первоначально он ограничен определенным количеством элементов. При его превышении вектор автоматически увеличивается, при удалении объектов уменьшается.
Имеется 2 стандартных конструкции:
1. без параметра. Задает вектор с параметром по умолчанию(размер 10элементов).
2. с параметром. Задает вектор с заданным количеством элементов.
При вызове конструктора Vector инициируется с нулевым значением.
Данный класс имеет следующие методы:
1. AddElement – с параметром ссылкой на объект, добавляет к вектору указанный объект;
2. Contains – возвращает значение истины, если вектор содержит указанный объект, иначе ложь;
3. elementAt – с целочисленным параметром, определяющим… ищет элемент по заданному индексу;
4. firstelement,lastelement – возвращает первый и последний элементы вектора типа Object;
5. size – возвращает количество элементов, содержащихся в векторе на данный момент;
6. removeelement – один параметр типа Object, удаляет указанный объект из вектора. Если вектор содержит несколько экземпляров данного объекта, то удаляется первый из них. Если удаляется удачно, то истина, иначе ложь.
Данный класс содержится в классе Java.util.
Класс Rectangle описывает прямоугольную область, задаваемую левой верхней вершиной и размерами по ширине и высоте.
Конструкторы класса:
1. без параметра – создается прямоугольная область в точке (0;0), высота 0, ширина 0.
2. 2 параметра – создается прямоугольная область в точке (0;0) с заданной шириной и высотой.
3. 4 параметра – в заданной точке и с заданными высотой и шириной.
Методы класса:
1.equals() – 1 параметр типа Object, возвращает истина, если параметр является объектом типа Rectangle и имеет те же координаты левого верхнего угла, высоту, ширину, что и данный объект.
2. mside() – 2 параметра, проверяет находится ли точка внутри данного прямоугольника. Истина-да.
3. move() – 2 параметра, перемещает прямоугольную область в соответствии с новыми заданными координатами левого верхнего угла.
4. reshape() – 4 параметра, перечерчивает заданную прямоугольную область с новыми параметрами.
5. resize() – 2 параметра, изменяет размеры прямоугольной области.
43 Многопоточное программирование в Java.
Многопоточная программа может содержать несколько частей, работающих одновременно. Каждая такая часть называется потоком. Каждый поток выполняется независимо от других. Иногда их называют нитями.
Использование потоков позволяет писать эффективные программы, которые максимально используют ресурсы процессора. Т.к. время его простоя сводиться к минимуму. Это важный фактор для интерактивных и сетевых средств, в которых используются java инструменты, т.к. время ожидания сказывается на скорости обмена информацией.
Для сравнения рассмотрим однопоточную среду. Эти системы используют следующий подход: эффективная работа с циклом обработки событий с буферизацией. В этой модели 1 поток управления выполняется в бесконечном цикле, накапливая в буфере одну очередь событий, решая, какое событие обрабатывать следующим. Так, если механизм буферизации заявляет о поступлении сигнала готовности файла для чтения, то из цикла событий управление будет передано соответствующему обработчику. Пока обработчик не вернет управление, никакое сообщение в системе не обрабатывается, и процессор работает вхолостую. Т.е. в этой среде, когда поток заблокирован из-за ожидания ресурса, прекращается и работа всей программы.
Преимущество многопоточного программирования в том, что главный цикл и механизм буферизации устранен, причем один поток может перейти в состояние ожидания без остановки других частей программы.
Потоки могут находиться в нескольких состояниях:
1. может выполняться;
2. может быть готовым к выполнению;
3. может выполняться, причем он может быть приостановлен и потом продолжен;
4. поток может быть заблокирован;
5. может быть завершен, после не может быть продолжен.
Система java указывает каждому потоку приоритет, по которому определяется его взаимодействие другими потоками. Приоритет – это целое число, которое означает относительное положение одних потоков относительно других. Значение приоритета само по себе не имеет смысла, и скорость выполнения от него не зависит.
Приоритет используется для определения момента переключения между выполняемыми потоками (это т.н. контекстное переключение).
Его правила:
1) Поток может передать управление по собственной инициативе. Это происходит при выходе из режима монопольного использования процессора при переходе в состояние ожидания или при блокировке. В этом случае опрашиваются другие потоки и поток, готовый к выполнению с наивысшим приоритетом занимает процессорное время.
2) Поток может быть отложен потоком с более высоким приоритетом, причем поток с низким приоритетом остается. Поток с более высоким приоритетом всегда может получить необходимые ресурсы. Этот принцип называется «многозадачностью с вытеснением».
Если 2 потока с равными приоритетами претендуют на ресурсы, то java непосредственно эту ситуацию не обрабатывает (это происходит на уровне операционной системы).
Многопоточная система в java базируется на классе Thread и использует интерфейс Runnable. Класс Thread инкапсулирует методы необходимые для выполнения потока. При создании потока, программа либо реализует интерфейс Runnable, либо расширяет класс Thread.
При запуске программы в Java, в ней уже есть 1 поток – это главный поток программы. Он важен по двум причинам:
1. Он порождает дочерние потоки;
2. Он должен быть последним потоком при завершении работы программы.
У класса Thread есть метод Sleep() который приводит к тому, что поток, из которого он вызывается, приостанавливает выполнение на определенный период времени. У этого метода ест 2 формы: static void sleep(long милисек) throws InterruptedException;
static void sleep(long милисек, int наносек) throws InterruptedException;
В классе Thread определены методы, которые получают имя потока.
final void getName();
и устанавливают его имя: final void setName(String имя);
