- •Лекция 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
- •Принципы ооп
Байт-код
Компилируемый язык — это такой язык, что программа, будучи скомпилированной, содержит инструкции целевой машины; этот машинный код непонятен людям. Примерами компилируемых языков являются C, C++, Erlang, Haskell и более современные языки, такие как Rust и Go. Интерпретируемый же язык — это такой, в котором инструкции не исполняются целевой машиной, а считываются и исполняются другой программой. Примерами интерпретируемых языков являются PHP, Perl, Ruby и Python.
Байткод-языки — это такие языки, которые используют для исполнения кода как компиляцию, так и интерпретацию. Java и фреймворк .NET — это типичные примеры байткод-языков. На самом деле, Java Virtual Machine (JVM) — это настолько популярная виртуальная машина для интерпретации байткода, что на ней работают реализации нескольких языков.
Добиться безопасности и переносимости программ по сети позволяет генерируемый компилятором Java код, не являющийся исполняемым. Такой код называется байт-кодом. Это оптимизированный набор команд, предназначенных для выполнения в исполняющей системе Java, называемой виртуальной машиной Java (Java Virual Machine - JVМ). Виртуальная машина Java, по существу, представляет собой интерпретатор байт-кода.
Схожие качества и различия Java и С++
указатели ( в Java нет);
поддержка деструкторов ( в С++ явно создавали, если в конструкторе был оператор new. В Jave метод finalize вызывался перед тем, как удалить.)
аргументы по умолчанию (в С++ была возможность передавать, в Jave static конструкции и методы);
множественное наследование (множественное наследование классов в С++ поддерживается, в Java - нет. Но множественное наследование интерфейсов (поведения) поддерживается.);
обработка исключительных ситуаций ( и там, и там. В Jave добавлено ключевое слово finally, позволяющее описать блок кода, который должен выполниться независимо от того, произошло ли исключение. Также добавлен try с ресурсами, позволяющий реализовать стратегию ARM (automatic resource management);
перегрузка методов поддерживается и там, и там;
добавлен отдельный вид комментариев (документирующий);
все конструкции ооп поддерживаются в Jave.
Особенности языка Java
Особенности языка Java:
Простота. Java обладает лаконичными, тесно связанными друг с другом и легко усваиваемыми языковыми конструкциями.
Безопасность. Java предоставляет безопасные средства для создания интернет-приложений.
Переносимость. Программы на Java мог выполняться в любой среде, для которой имеется исполняющая система Java.
Объектно-ориентированный характер. В Java воплощена современная философия объектно-ориентированного программирования.
Надежность. Java уменьшает вероятность появления ошибок в программах благодаря строгой типизации переменных и выполнению соответствующих проверок во время выполнения.
Многопоточность. Java обеспечивает встроенную поддержку многопоточного программирования.
Архитектурная независимость. Язык Java не привязан к конкретному типу вычислительной машины или архитектуре операционной системы.
Интерпретируемость. Java предоставляет байт-код, обеспечивающий независимость от платформы.
Высокая производительность. Байт-код Java максимально оптимизируется для повышения производительности.
Распределенность. Язык Java проектировался с учетом его применения в распределенной среде Интернета.
Динамичность. Программы на Java содержат значительную долю информации, используемой во время выполнения для проверки и разрешения доступа к объектам.