
- •Классификация современных мп.
- •Организация мп систем
- •Організація однокристального мікроконтролера мсs-51. Типи пам'яті. Карта пам'яті. Режими адресації. Особливості системи команд: команди пересилання.
- •Команды пересылки данных.
- •Регістрова структура мікроконтролера мс5-51. Особливості системи команд: арифметичні команди, логічні команди, бітові операції, команди передачі керування.
- •Блок регистров специальных функций(sfr)
- •Однокристальний мікро контролер mcs-51: порти вводу-виводу, система переривань. Службові регістри переривань, процедура обробки переривань.
- •Регистр приоритетов прерываний (ip)
- •Однокристальний мікро контролер mcs-51: система таймерів-лічильників. Структура таймерів-лічильників. Службові регістри. Режими роботи. Приклад обробки переривань від таймера 0.
- •2.7 Платформа java. Створення та виконання програм. Принципи об’єктно-орієнтованого підходу. Інкапсуляція. Композиція. Наслідування. Поліморфізм.
- •Платформа java. Типи даних. Організація пам’яті. Структура класів. Статичні елементи. Конструктори. Абстрактні класи та інтерфейси. Внутрішні класи. Все является объектом
- •Примитивные типы (примитивы)
- •Создание новых типов данных
- •Поля и методы
- •Методы, аргументы и возвращаемые значения
- •Ключевое слово static
- •Статические методы
- •Конструктор гарантирует инициализацию
- •Класс Class
- •Абстрактные классы и методы
- •Интерфейсы
- •Внутренние классы Вложенные классы (Inner)
- •Классы, вложенные в методы (локальные внутренние классы)
- •Анонимные внутренние классы
- •Статические внутренние классы (nested)
- •Компоненты и контейнеры
- •Диспетчеры компоновки
- •Обработка событий
- •Платформа java: потоки вводу-виводу, Класифікація потоків. Класи-фільтри. Байтові та текствові потоки. Потоки ввода/вывода и файлы
- •Классификация классов ввода-вывода
- •Потоки фильтров
- •Текстовые потоки
Платформа java: потоки вводу-виводу, Класифікація потоків. Класи-фільтри. Байтові та текствові потоки. Потоки ввода/вывода и файлы
Пакет java.io.*
Поток (stream) – это абстракция, которая либо порождает, либо принимает информацию. Поток связан с физическим устройством с помощью системы ввода/вывода Java. Все потоки ведут себя одинаково, даже не смотря на то, что реальные физические устройства, к которым они подключены, отличаются друг от друга. Таким образом, одни и те же классы и методы ввода-вывода применимы к устройствам разного типа. Это означает, что абстракция входного потока может охватить разные типы ввода: из дискового файла, клавиатуры или сетевого сокета. Аналогично выходной поток может ссылаться на консоль, дисковый файл или сетевое подключение.
Для лучшего восприятия понятия «поток» представим его как трубу, по которой данные от источника читаются или передаются программой. Источник данных подключается конструктором.
Рис.1
Байтовые потоки определены в двух иерархиях классов (ввод и вывод). (Java определяет два типа потоков: байтовые и символьные. Байтовые потоки предоставляют удобные средства для управления вводом и выводом байтов. Байтовые потоки используются, например, при чтении и записи бинарных данных. Символьные потоки предлагают удобные возможности управления вводом и выводом символов.) На вершине находятся абстрактные классы InputStream и OutputStream. Каждый из этих абстрактных классов имеет несколько реальных подклассов, которые управляют различиями между различными устройствами.
Абстрактные классы (нельзя создать, можно только ссылаться) InputStream и OutputStream определяют несколько ключевых методов, которые реализуют другие потоковые классы. Два наиболее важных – это read() и write(), которые, соответственно, читают и пишут байты данных. Оба метода объявлены как абстрактные внутри InputStream и OutputStream. В классах - наследниках они переопределяются.
Классификация классов ввода-вывода
Абстрактные классы:
Потоки, которые работают с узлами – потоки узлов – подключаются к конечному пункту-источникам данных.
Источники данных:
JAVA-Переменные.
Для потока низкого уровня: ByteArrayInputStream
ByteArrayOutputStream
Для потока высокого уровня: CharArrayReader
CharArrayWriter
CharArrayStringReader
CharArrayStringWriter
Для обмена между тредами служат потоки вычислений:
PipedInputStream;PipedOutputStream – источник/приемник информации.
PipedInputReader;PipedOtputWriter.
Потоки фильтров
Они подключаются к другим потокам и модифицируют их.
Служат для:
Буферизации: BufferedInputStream,BufferedOutputStream – байты
BufferedReader,BufferedWriter – символы.
Преобразовать поток байтов в поток символов:
InputStreamReader – из ASCII в Unicode;
OutputStreamWriter – из Unicode в ASCII.(в кодировке ОС)
Формирование Java – типов: DataInputStream
DataOutputStream
Позволяют прочитать из входного байтового потока или записать в выходной байтовый поток данные сложных типов — объекты, массивы, строки:
ObjectInputStream
ObjectOutputStream
Склеивают байты/символы в строки.
Вывод на печать: PrintStream – тип стандартного потока вывода System.out
поддерживает вывод строк print(), println() с преобразованием Unicode - ASCII по умолчанию.
PrintWriter – в конструкторе должен быть поток (байтовый или
символьный). Выводит только текст (print(), println())
write(int)
write(byte[])
Формирует номера строк при вводе: LineNumberReader
Возвращение в поток ввода/вывода: PushBackInputStream
PushBackReader.
Потоки данных («форматированный» ввод/вывод)
Классы DataInputstream и DataOutputstream позволяют читать/записать данные простых типов Java в выходной поток байтов методами
writeInt() / readInt() – запись 4 байт; Интерфейсы DataInput/Оutput.
writeDouble()/ readDouble() - запись 8 байт.
Порядок байт - big endian – сначала старшие байты, а потом младшие.
Данные хранятся в двоичном виде.
Например, число 1234 будет выглядеть:
1
234
00 00 04 D2 – 4 байта, тип int,
big-endian.