- •Лекция 1 Динамическая память и интеллектуальные указатели.
- •Лекция 2
- •Лекция 3
- •Исчерпание памяти
- •Лекция 4 Smart-pointer для обработки исключений
- •Создание собственного кода удаления
- •Класс unique_ptr
- •Класс weak_ptr
- •Использование динамических массивов
- •Смарт поинтеры и динамические массивы
- •Класс allocator
- •Тема 2. Обработка исключительных ситуаций
- •Лекция 7
- •Класс Exception
- •Лекция 8
- •Потоки, буферы и файл iostream
- •Перегруженная операция вставки
- •Лекция 9
- •Ввод с помощью cin
- •Тема 4. Файловый ввод/вывод
- •Лекция 10
- •Режимы открытия файла
- •Бинарные файлы
- •Лекция 11
- •Тема 5. Библиотека шаблонов Standart Template Library (stl)
- •Шаблонный класс Vector
- •Лекция 12
- •Цикл for , основанный на диапазоне
- •Обобщённое программирование
- •Лекция 13
- •Виды итераторов
- •Входные итераторы
- •Однонаправленные итераторы
- •Двунаправленные итераторы
- •Произвольного доступа
- •Лекция 14 Двунаправленные итераторы
- •Виды контейнеров
- •Лекция 15 Разработка с использованием Java-платформы
- •Этапы развития языка Java
- •Байт-код
- •Особенности языка Java
- •Программная платформа и виртуальная машина Java
- •Особенности разработки и исполнения объектно-ориентированных приложений на Java Сборка мусора в Java
- •Пакет jdk
- •Ide для работы на Java
- •Особенности настройки работы платформы Java
- •Запуск приложения на языке Java без ide
- •Особенности лексики Java
- •Примитивные типы данных Java
- •Переменные
- •Объявление переменной
- •Область и срок действия переменной
- •Преобразование и приведение типов. Автоматическое приведение и продвижение типов в выражениях. Логические выражения. Арифметические операции
- •Логические операции
- •Предшествование операций
- •Управляющие операторы
- •Операторы выбора Условный оператор if
- •Операторы цикла
- •Разновидность цикла for в стиле for each
- •Применение оператора instanceof
- •Принципы ооп
Виды контейнеров
Последовательные
Ассоциативные
Контейнеры-адаптеры
Концепция контейнера представляет собой объект, который хранит в себе другие объекты. Хранимые элементы могут быть объектами или значениями встроенных типов. Данные контейнера принадлежат ему. Это означает, что когда время существования контейнера истекает, истекает и время хранения данных контейнера. Однако если данные являются указателями, то истечение срока существования указываемых ими данных необязательно. В контейнерах нельзя сохранять объекты любого вида. Тип хранимых объектов должен допускать присваивание и конструирование копированием. Базовые типы удовлетворяют этим требованиям. В собственных классах следует создавать конструктор копирования и перегрузку оператора присваивания, обращая внимания на их доступ (не прятать и не защищать).
19 мая 2021
Лекция 15 Разработка с использованием Java-платформы
Индекс TIOBE характеризует ЯП с учетом его популярности в сети интернет на основе подсчета результатов поисковых запросов, содержащих название языка.
Язык Java является интерпретируемым, за счет этого выполняется медленнее. В 1997 году был встроен JustInTime компилятор. Процесс компиляции встраивался на лету в момент интерпретации.
Этапы развития языка Java
Java разработала компания Sun Microsystems в начале 90-х годов XX века. Ведущую роль в создании языка сыграл канадский инженер Джеймс Гослинг (James Gosling). На ранних этапах разработки язык назывался Oak. Затем его переименовали в честь сорта кофе Java. Связь языка с напитком отражается в логотипе.
JDK - инструментарий Java разработчиков, включающий в себя Java компилятор (Java C), собственную библиотеку классов, документация, дополнительные утилиты и непосредственно исполняющую систему Java (JRE).
В версию JDK 1.2 была добавлена поддержка Collections Framework (аналоги контейнеров библиотеки STL). В версию 1.4 была добавлена обработка регулярных выражений, связывания исключений в цепочки (Exception Chaining), поддержка канальной системы ввода-вывода (NIO), поддержка адресации в сети API версии 6, поддержка логирования.
В JDK версии 5.0 были добавлены обобщения, аннотации, позволяющие маркировать код необходимыми свойствами и проводить анализ этой маркировки, указывая, какой модуль должен анализировать соответствующую аннотацию. В версии 5 была внедрена конструкция, которая называется автоупаковка и автораспаковка, позволяющие конвертировать примитивные типы и соответствующие им типы классов-оберток (wrappers) и следовательно снизить количество необходимого кода. При этом автоупаковка и автораспаковка всегда выполняются автоматически.
В версию 1.5 было добавлено ключевое слово Enum, позволяющее создавать наборы данных, которые имеют ограниченное количество значений и представляют собой альтернативные значения. Была добавлена возможность передачи переменного количества аргументов (var args) для сокращения количества перегрузок методов. Добавлена реализация цикла foreach, который позволяет перемещаться по элементам коллекции в одном направлении без возможности их модификации. Добавлен статический импорт, позволяющий подключать статически компоненты классов для сокращения конечного ввода.
В версии 1.6 была улучшена работа Java виртуальной машины и оптимизированы алгоритмы сборщика мусора.
В версии 7 был добавлен интерфейс autocloseable, позволяющий делегировать закрытие открытых ресурсов исполняющей системе, был добавлен ромбовидный оператор < >, возможность записи чисел через подчеркивание (123_456_789), было добавлено автоматическое выведение типов (TYPE INFERENCE), позволяющее слева от знака равно указать параметр шаблонного класса, справа от знака равно не указывать, позволяя системе вывести тип в момент выполнения этого оператора. Был добавлен, так называемый, multi- catch, позволяющий в качестве типа объекта, обрабатываемого блока catch, указывать не один, а несколько типов. Типы при этом разделяются одним вертикальным слешем и не должны иметь общих базовых классов.
В 8 версии были добавлены замыкания (лямбда-выражения), позволяющие значительно сократить объем создаваемого кода.