последовательность инструкций исполнителю, приводящая к желаемому результату за конечное число действий
Входные данные
то что имеем
перед выполнением алгоритма
Выходные данные
результат выполнения алгоритма
Из чего состоит программа?
состоит из команд (инструкций)
Машинный код (исходный код)
это команды для процессора.
Для чего нужны программы-трансляторы?
используются для того чтобы перевести текст программы (исходный код) в машинный код
Какие существуют виды трансляторов?
Компиляторы и интерпретаторы.
Что делает компилятор?
Анализирует весь исходный код, проверяет на наличие ошибок, и после этого переводит текст программы целиком в машинный код. Обычно на выходе получается файл с машинным кодом.
Что делает интерпретатор?
Работает с исходным кодом построчно: берет очередную инструкцию из исходного кода, переводит ее в машинный код и тут же исполняет. На выходе не создается файл с машинным кодом, а при каждом запуске программы, перевод выполняется заново.
На какие виды делятся языки программирования по виду используемого транслятора?
Компилируемые и интерпретируемые. Java использует комбинацию этих подходов.
Для чего нужна интегрированная среда разработки
(Integrated Development Environment сокращенно IDE)?
Для повышения продуктивности процесса разработки.
Что включает в себя интегрированная среда разработки
(Integrated Development Environment сокращенно IDE)?
Текстовый редактор, средства для компиляции и запуска программ, средства отладки.
Распространенные IDE для Java
– IntelliJ IDEA;
– Eclipse;
– NetBeans.
Что означает кроссплатформенный язык?
это означает что созданное приложение может запускаться на нескольких операционных системах.
Чем занимается сборщик мусора (Garbage collector)?
отслеживает данные, которые стали неиспользуемыми, и освобождает занимаемую ими память.
Виртуальная машина Java
это среда исполнения Java. Она необходима для запуска Java приложений на компьютере.
Виртуальную машину можно получить в составе:
‒ JRE (Java Runtime Environment) для обычных пользователей, только для запуска программ;
‒ JDK (Java Development Kit) для разработчиков, дополнительно содержит утилиты для разработки, документацию и др.
Блок кода
это код заключенный в фигурные скобки.
С какой функции начинается исполнение программы?
Main
Описание модели исполнения Java
1. Исходный код (файлы .java);
2. Компиляция (компилятор Java javac);
3. Байт код (IL);
4. Виртуальная машина Java (JIT-компилятор);
5. Виртуальная машина Java (Машинный код);
6. Исполнение операционной системой.
Тип данных
это вид данных с одинаковой структурой и поведением. (Пример: целые числа, строки)
Литерал
это значение типа, которое встречается непосредственно в коде.
Переменная
ячейка памяти компьютера, которая может хранить в себе одно значение заданного типа
Ключевые (зарезервированные) слова
слова, которые имеют специальный смысл. Эти слова нельзя использовать в качестве имен переменных
Конкатенация
это объединение строк друг с другом.
Приведение типа
преобразование значения одного типа в значение другого типа.
Группы преобразования числовых типов
Безопасные (без потери данных) и небезопасные (с потерей данных).
Строка форматирования
строка, некоторые части которой имеют особый смысл. Такие части начинаются с символа % и называются спецификаторами формата.
Конъюнкция (логическое И)
истинна (результат - true) только если истинны все подвыражения (все подвыражения дают true).
это конструкция языка, которая выдает результат некоторого типа (литералы, переменные, функции типа Math.sqrt).
Является ли тернарный оператор выражением?
является выражением.
Можно ли сравнивать вещественные числа через знак "=="?
Для вещественных чисел нельзя использовать проверку на равенство при помощи "==".
Проверка на равенство вещественных чисел
|a - b| <= epsilon
Проверка на то что вещественные числа не равны
|a - b| > epsilon
Проверка что одно вещественное число больше другого
a - b > epsilon
Константа
это переменная, значение которой нельзя изменить.
Инкремент
увеличение значения переменной на еденицу.
Декремент
уменьшение значения переменной на единицу.
Вариант x++; и x--; называется?
постфиксным. Запоминает значение до инкремента/декремента, затем выполняет инкремент/декремент, а затем выдает запомненное старое значение.
Вариант ++x; и --x; называется?
префиксным. Выполняет инкремент/декремент и выдает новое значение.
Цикл
это исполнение одного и того же блока кода пока выполняется некоторое условие.
Итерация
Одно выполнение тела цикла
Тело цикла
код который выполняется внутри цикла.
Условие цикла
условие продолжения цикла. Проверяется перед началом каждой итерации.
Зацикливание
бесконечное выполнение цикла.
Отладка программы (debug)
процесс поиска ошибок
Точка останова (breakpoints)
Позволяют остановить исполнение программы в указанном месте, когда поток исполнения достигнет его.
Инициализация в цикле for
установка начальных значений счетчиков. Выполняется 1 раз при входе в цикл.
Модификация в цикле for
изменение значений счетчиков. Выполняется после каждой итерации.
Локальная переменная
переменные, объявленные внутри функции.
Область видимости
часть кода внутри функции, откуда можно обратиться к этой переменной.
Функция
это часть программы, к которой можно обращаться как к одной команде.
Из чего состоит функция?
1. модификатор видимости;
2. отношение к классу;
3. тип результата;
4. название функции;
5. список аргументов;
6. тело функции.
Модификатор видимости
это ключевое слово, которое задает уровень доступа к функции.
Нужно ли создавать объект при вызове static функции?
Если функция объявлена как static, то чтобы вызвать ее, нам не нужно создавать объект, мы можем обратиться к ней по имени класса, в котором она объявлена.
Перегрузка функций (overload)
несколько функций в одном классе с одинаковым названием, но отличающиеся набором аргументов.
Парадигмы программирования
это совокупность идей и понятий, определяющих стиль написания компьютерных программ.
Каким языком является Java?
Java является объектно-ориентированным языком.
Объект
это некоторая конкретная сущность (предмет, явление). Например: стол, кошка, гроза и т.д. Другое определение - это экземпляр класса.
Какими характеристиками обладает объект?
1. состояние;
2. поведение;
3. уникальность.
Состояние объекта
это набор характеристик объекта и их значений в данный момент времени.
Поведение объекта
это действия, которые может совершать объект и как объект может реагировать на воздействие со стороны других объектов.
Уникальность объекта
то, что отличает его от других объектов.
Класс
это вид объектов с одинаковой структурой и поведением.
выделение существенных характеристик объекта и существенного поведения, и отбрасывание несущественных характеристик и поведения.
Инкапсуляция (принцип ООП)
механизм языка, позволяющий объединить данные и методы, работающие с этими данными, в единый объект, и скрыть детали реализации от пользователя кода.
Наследование (принцип ООП)
процесс создания на основе старого класса нового класса, который может переопределять
члены класса-родителя и добавлять новые члены.
Полиморфизм (принцип ООП)
свойство, при котором сущности с
одинаковым интерфейсом ведут себя по-разному.
this
ключевое слово, обозначающее текущий объект (для которого вызвана функция).
Конструктор
специальная функция, которая позволяет создать и инициализировать экземпляр класса.
Классы-утилиты
это классы которые содержат только статические методы и статические константы. Например класс Math.
Пакеты
это отдельный модуль (пространство имен), которому соответствует одноименный каталог (папка). Пакет содержит библиотеки (группы) классов. Эти классы объединены между собой в одном пространстве имен или пакете. Количество реализованных классов в пакете неограничено. Классы, которые объявляются в пакете, реализуются в файлах с расширением *.java.
Зачем нужны пакеты
• лучше структурировать файлы проекта;
• не делать вспомогательные классы доступными вне пакета, внутри которого они объявлены. То есть пакеты также являются средством инкапсуляции;
• избежать конфликтов имен. Благодаря пакетам можно давать разным классам одинаковые имена, если эти классы лежат в разных пакетах.
Категории типов данных
value type (типы значений) и reference type (ссылочные типы).
алгоритм хорошо работает на частично или полностью упорядоченных данных.
Внутренняя сортировка
работает с массивом, целиком помещающимся в памяти и быстрым доступом по любому индексу.
Внешняя сортировка
работает с большими структурами данных с последовательным доступом, не помещающимися в оперативную память. Например, это сортировка файлов или списков.
это специальный язык для поиска подстрок в тексте. Они позволяют найти подстроки, соответствующие некоторому шаблону, а потом с этими подстроками можно работать – получать, заменять, удалять и т.д.