Лекции 2025. Java. Белая / Ответы на билеты. Java
.pdf
Особенности платформы Java:
1."Write Once, Run Anywhere" (WORA): Код компилируется в байт-код, который может выполняться на любой платформе, где установлена Java Virtual Machine (JVM).
2.Объектно-ориентированный язык (ООП): Всё в Java является объектом
(кроме примитивных типов, но для них есть классы-обертки). Поддерживает инкапсуляцию, наследование, полиморфизм.
3.Строгая типизация: Тип каждой переменной должен быть объявлен до ее использования, и проверки типов выполняются во время компиляции.
4.Автоматическое управление памятью (сборка мусора): Разработчику не нужно явно освобождать память; JVM делает это автоматически.
5.Многопоточность: Встроенная поддержка создания многопоточных приложений.
6.Безопасность: Встроенные механизмы безопасности, такие как менеджер безопасности, проверка байт-кода.
7.Платформенная независимость API: Стандартные библиотеки Java (Java API)
предоставляют унифицированный способ взаимодействия с системой.
8.Составляющие платформы:
JDK (Java Development Kit): Набор для разработки. Включает JRE, компилятор (
), отладчик, документацию и другие утилиты.
JRE (Java Runtime Environment): Среда выполнения Java-приложений.
Включает JVM и основные библиотеки классов.
JVM (Java Virtual Machine): Виртуальная машина, которая интерпретирует (или JIT-компилирует) байт-код в машинный код конкретной платформы.
Синтаксис языка Java:
C-подобный синтаксис: Используются фигурные скобки
для блоков кода, точка с запятой
для завершения инструкций.
Регистрозависимый:
и
— это разные переменные.
Комментарии:
Однострочные: 
Многострочные: 
Документационные (Javadoc): 
Ключевые слова: Зарезервированные слова, имеющие специальное значение (например,
,
,
,
,
,
,
,
).
Идентификаторы: Имена классов, методов, переменных. Должны начинаться с буквы,
или
, далее могут содержать цифры.
Структура программы: Программа на Java состоит из одного или нескольких классов. Один из классов должен содержать метод 
, который является точкой входа в программу.
13. Примитивные типы данных, объявление и присваивание переменных
Примитивные типы данных:
Хранят непосредственно значения, а не ссылки на объекты.
Имеют фиксированный размер в памяти.
8 примитивных типов:
1. Целочисленные:
: 8 бит, от -128 до 127.
: 16 бит, от -32,768 до 32,767.
: 32 бита, от -231 до 231-1 (наиболее часто используемый).
: 64 бита, от -263 до 263-1. Суффикс
или
для литералов:
.
2. С плавающей точкой:
: 32 бита, одинарная точность. Суффикс
или
для литералов:
.
: 64 бита, двойная точность (используется по умолчанию для дробных чисел). Суффикс
или
(необязателен): 
.
3. Символьный:
: 16 бит, Unicode-символ. Заключается в одинарные кавычки:
.
4. Логический:
: представляет
или
. Размер не определен строго спецификацией, но обычно 1 бит логически.
Объявление переменных:
Синтаксис: 
Примеры:
Присваивание переменных:
Используется оператор присваивания
.
Синтаксис: 
Можно объявлять и инициализировать (присваивать начальное значение) одновременно:
Примеры:
14. Типизация. Правила преобразования типов.
Типизация:
Java — язык со строгой статической типизацией.
Статическая: Тип каждой переменной известен на этапе компиляции. Компилятор проверяет совместимость типов во всех операциях.
Строгая: Неявные преобразования типов разрешены только если они безопасны (без потери данных). В остальных случаях требуется явное преобразование.
Правила преобразования типов (Type Casting):
1. Неявное преобразование (Implicit Casting / Widening Conversion):
Происходит автоматически, когда значение меньшего типа присваивается переменной большего типа (т.е. без потенциальной потери данных). Порядок:
. Также
может быть неявно преобразован в
(и далее).
2. Явное преобразование (Explicit Casting / Narrowing Conversion):
Требуется, когда значение большего типа присваивается переменной меньшего типа (т.е. с возможной потерей данных или точности). Выполняется с помощью оператора приведения типа
. Разработчик берет на себя ответственность за возможную потерю данных.
Преобразование с классами-обертками: Для преобразования строк в числа и наоборот используются методы классов-оберток (
,
,
).
15. Условные операторы, полное и неполное ветвление в Джава, синтаксис
Условные операторы позволяют программе принимать решения и выполнять различные блоки кода в зависимости от выполнения определенных условий.

(неполное ветвление):
Выполняет блок кода, если условие истинно (
). Синтаксис:
Пример:

(полное ветвление):
Выполняет один блок кода, если условие истинно, и другой блок кода, если условие ложно (
).
Синтаксис:
Пример:

(множественное ветвление):
Позволяет проверять несколько условий последовательно.
Как только одно из условий
или
оказывается истинным, соответствующий блок кода выполняется, и остальные проверки пропускаются.
Блок
(необязательный) выполняется, если ни одно из предыдущих условий не было истинным.
Синтаксис:
Пример:
Вложенные
операторы:
операторы могут быть вложены друг в друга для более сложных проверок.
Тернарный оператор (условный оператор): 
Компактная форма
, используется для присвоения значения или в выражениях.
16. Оператор множественного выбора в Джава, синтаксис
Оператор множественного выбора
позволяет выбрать один из нескольких блоков кода для выполнения на основе значения выражения. Это альтернатива длинным цепочкам
, когда сравнение идет с конкретными значениями.
Синтаксис:
Как работает:
1.Вычисляется
.
2.Результат сравнивается последовательно со
,
, и т.д. (с использованием
для строк, начиная с Java 7, и
для примитивов и enum).
3.Если совпадение найдено, выполняется соответствующий блок кода.
4.Оператор
вызывает немедленный выход из
. Если 
отсутствует, выполнение "проваливается" (fall-through) к следующему
(или
) и его код тоже будет выполнен, пока не встретится
или конец
. Это иногда используется намеренно, но чаще является источником ошибок.
5.Блок
(необязательный) выполняется, если ни одно из
не совпало с результатом
.
Типы данных для
в
:
,
,
,
.
Их классы-обертки:
,
,
,
.
(перечисления).
(начиная с Java 7).
Примеры:
1. С
:
2. С
(Java 7+):
3. Fall-through (проваливание):
4. Enhanced
(Java 14+):
Более краткий синтаксис с использованием
(стрелки).
Автоматически предотвращает "проваливание" (не нужен
в большинстве случаев).
Может использоваться как выражение, возвращающее значение.
