- •Объектно-ориентированное программирование (общие сведения).
- •Атрибуты объекта в ооп.
- •Преимущества многократного использования кода, понятие модульности, ее реализация.
- •Возможности и назначение jvm.
- •Особенности проектирования программ в Java.
- •Объектная модель Java.
- •Пакет java.Lang.
- •Назначение и состав библиотек классов Java.
- •Особенности управления программами в Java.
- •Порядок выполнения программ в Java
- •Понятие превращения программ Java в исполняемый код.
- •Принцип инкапсуляции в java
- •Принцип наследования в Java
- •Понятие о классах в java
- •Реализация процедуры в java
- •Понтие функции в java
- •Возвращаемые значения в функциях.
- •Передача параметров в java.
- •Атрибуты класса
- •Способы создания и обработка массивов данных
- •Операторы прерывания программ, основные типы ошибок
- •Типы переменных в java
- •Особенности объявления переменных в java
- •Объявление массива данных в java
- •Логические операторы java
- •Операции и конструкции сравнения в java
- •Проектирование программ и состав модулей
- •Организация циклов в java
- •Понятие интерфейсов в java
- •Возможности java по работе с файлами
- •Потоки выполнения и синхронизация.
- •Виды встроенных классов.
- •Понятие коллекций, списков и итераторов.
- •Управление ходом выполнения программ.
- •Работа со стороками.
- •Сериализация объектов.
- •Создание объекта-исключения.
- •Использование модификаторов доступа.
- •Организация доступа к файлам.
- •Интерфейсы.
- •Основные отличия интерфейсов от классов.
- •Особенности наследования интерфейсов.
- •Базовые классы при работе с потомками выполнения в Java.
- •Базовые классы реализации ввода/вывода данных.
- •Объектные и ссылочные типы данных Java.
- •Понятие компиляции проекта в Java.
- •Способы создания модульного компонента в Java.
- •Работа "сборщика мусора".
- •Понятие преобразования типов в Java.
- •1. Виды преобразований
- •1.1. Расширяющие преобразования чисел
- •1.2. Сужающие преобразования чисел
- •1.3. Расширяющие преобразования ссылок
- •1.4. Сужающие преобразования ссылок
- •1.5. Преобразования в строки
- •1.6. Недопустимые преобразования
- •2. Контексты преобразований
- •2.1. Преобразование при присваивании
- •5.4.2.2. Преобразование аргументов метода
- •5.4.2.3. Преобразование в строку
- •5.4.2.4. Явное преобразование типа
- •5.4.3. Преобразования типов числовых операндов
Базовые классы при работе с потомками выполнения в Java.
Виртуальная машина Java поддерживает многопоточность. Т.е. поддержку нескольких потоков (threads) исполнения одновременно. Для каждого из потоков выделяется отдельная подзадача, и в результате не сколько задач обслуживаются одновременно jvm. Это реализуется процедурой квантования времени. Время разделяется на небольшие интервалы, которые отдаются для обработки потока, и , за счет переключений между задачами, эмулируется многопоточная архитектура.
Преимущества многопоточности позволяет выполнять процессору несколько действий одновременно, и гибко управлять управлением задач. Процедура квантования времени поддерживает приоритеты, которые представляются в Java целыми числами. Т.е. поток с более высоким приоритетом получает большее количество квантов времени на исполнение. Например, автоматический сборщик мусора запускается в виде фонового низкоприоритетного процесса, и такие обслуживающие потоки называются deamon(s). Потоки выполнения в яве представляется экземпляром класса Thread. Для создания потока исполнения необходимо наследоваться от этого класса и переопределить метод run () в нем, а для его запуска вызвать унаследованный метод start () , сообщающий виртуальной машине о запуске виртуального потока. После завершения метода run () поток выполнения останавливается. Более простым способом создания потока исполнения является реализация интерфейса Runnable , в котором объявлен один метод void run().
Интерфейс Runnable не заменяет класс Thread , так как запуск потока исполнения становится возможным только через метод Thread.start() .Для назначения потоком приоритетов в классе Thread существуют методы get/set Priority и 3 константы: MIN_PRIORITY, MAX_ PRIORITY, NORM_ PRIORITY.
Конструктору класса Thread передается два параметра: имя потока и номер.
Формула вычислений приоритетов позволяет равномерно распределить кванты времени для запускаемых потоков. Daemon- потоки позволяют описывать фоновые процессы , используемые для обслуживания основных потоков выполнения, и не существуют без них. для работы с ними используются методы set/in Daemon.
Daemon- поток никогда не выходит за рамки метода Run и Jvm прекращает работу при завершении не Daeon- потоков. Потоки исполнения можно группировать с помощью класса ThreadGroup.
Методы sleep() и yield позволяют приостанавливать выполнение текущего потока на указанное количество миллисекунд для работы других потоков.
В многопоточной архитектуре возможны ситуации, когда несколько потоков одновременно обрабатывают одни и те же данные.При этом финальные значения будут зависеть от случайных факторов, зависящих от приоритетов потоков. И при выполнении приложений могут возникать конфликты. Эти конфликты в Java устраняются с помощью синхронизации. Виртуальная машина поддерживает основное хранилище данных, в котором хранятся значения всех переменных (поля объектов и классов, элементы массивов), используемых всеми потоками. А для каждого потока создается собственная рабочая память, в кот перед использованием копируются значения всех переменных.
