Лекции 2025. Java. Белая / Ответы на билеты. Java
.pdf
17. Константы в Джава: объявление константы
Константа — это переменная, значение которой не может быть изменено после инициализации.
Объявление:
В Java константы объявляются с использованием ключевого слова
.
По соглашению, имена констант пишутся в ВЕРХНЕМ_РЕГИСТРЕ, слова разделяются подчеркиванием.
Константа должна быть инициализирована при объявлении или в конструкторе (если это поле класса). После инициализации ее значение изменять нельзя.
Виды констант:
1. Локальные константы (внутри метода):
2. Поля класса (instance constants / константы экземпляра):
Принадлежат каждому объекту класса.
Могут быть инициализированы при объявлении или в конструкторе.
3. Статические константы (class constants / константы класса):
Объявляются с
.
Принадлежат классу, а не его экземплярам. Существует только одна копия такой константы для всего класса.
Должны быть инициализированы при объявлении или в статическом блоке инициализации.
Часто объявляются как
, чтобы быть доступными из других классов как глобальные константы.
Константы и ссылочные типы:
Если
переменная ссылочного типа (например, массив или объект), то
означает, что сама ссылка не может быть изменена (т.е. переменная не может указывать на другой объект/массив).
Однако содержимое объекта или массива, на который указывает
ссылка, может быть изменено (если объект сам по себе изменяемый).
Чтобы создать неизменяемый объект, нужно использовать неизменяемые классы (например,
,
) или спроектировать свой класс как неизменяемый
(immutable).
18. Арифметические операции, операции инкремента и декремента
Арифметические операции: |
|
|
|
|
|
(Сложение): |
|
|
|
|
|
(Вычитание): |
|
|
|
|
|
(Умножение): |
|
|
|
|
|
(Деление): |
|
|
|
|
|
Для целых чисел ( |
, |
и т.д.) это целочисленное деление (дробная |
|||
часть отбрасывается): |
|
|
|
|
|
Для чисел с плавающей точкой ( |
, |
) это обычное деление: |
|||
Если один из операндов |
|
или |
, результат будет |
или |
|
: |
|
|
|
|
|
(Остаток от деления / деление по модулю): |
|
|
|||
(7 = 2*3 + 1) |
|
|
|
|
|
Знак результата |
совпадает со знаком делимого (в Java). |
|
|||
Составные операторы присваивания:
Сокращенная форма для выполнения операции и присваивания результата.
:
эквивалентно 
:
эквивалентно 
:
эквивалентно 
:
эквивалентно 
:
эквивалентно 
Операции инкремента (
) и декремента (
):
Увеличивают или уменьшают значение переменной на 1.
Префиксная форма (
,
):
1.Изменяет значение переменной (
).
2.Возвращает новое значение
.
Постфиксная форма (
,
):
1.Возвращает старое (оригинальное) значение переменной
.
2.Изменяет значение переменной (
).
19. Типы данных в языке Джава, классификация, примеры
Типы данных в Java делятся на две основные категории:
1. Примитивные типы (Primitive Types):
Хранят непосредственно значения.
Не являются объектами.
Имеют предопределенный размер и диапазон значений.
Передаются по значению.
Классификация примитивных типов:
Целочисленные:
: 8-битное знаковое целое. Диапазон: -128 до 127.
: 16-битное знаковое целое. Диапазон: -32,768 до 32,767.
: 32-битное знаковое целое. Диапазон: -231 до 231-1. (Наиболее часто используемый).
: 64-битное знаковое целое. Диапазон: -263 до 263-1. (Литералы требуют суффикса
или
).
С плавающей точкой (для вещественных чисел):
: 32-битное число с плавающей точкой одинарной точности (IEEE 754). (Литералы требуют суффикса
или
).
: 64-битное число с плавающей точкой двойной точности (IEEE 754). (Используется по умолчанию для дробных литералов, суффикс
или
необязателен).
Символьный:
: 16-битный Unicode-символ. Диапазон: от
(0) до
(65,535). (Литералы в одинарных кавычках).
Логический:
: имеет два возможных значения:
или
.
2. Ссылочные типы (Reference Types / Non-Primitive Types):
Хранят ссылки (адреса в памяти) на объекты. |
|
|
||
Сами объекты создаются в куче (heap). |
|
|
||
Переменная ссылочного типа может иметь значение |
, что означает, что |
|
||
она не ссылается ни на какой объект. |
|
|
||
Включают: |
|
|
|
|
Классы (Classes): Пользовательские или встроенные (например, |
, |
|||
, |
, |
). |
|
|
Интерфейсы (Interfaces): Определяют контракт, которому должны следовать классы. Нельзя создать экземпляр интерфейса, но можно объявить переменную типа интерфейса, которая будет ссылаться на объект класса, реализующего этот интерфейс.
Массивы (Arrays): Упорядоченные коллекции элементов одного типа (примитивного или ссылочного). Массивы в Java также являются объектами.
Перечисления (Enums): Специальный тип данных, который позволяет переменной быть одной из предопределенного набора констант.
Ключевые различия:
Характеристика |
Примитивные типы |
Ссылочные типы |
|
|||
|
|
|
|
|||
Хранение |
Непосредственно значение |
Ссылка (адрес) на объект в |
|
|||
|
|
|
|
памяти |
|
|
|
|
|
||||
Память |
Стек (для локальных |
Переменная-ссылка на стеке, |
||||
|
переменных) |
|
|
объект в куче (heap) |
|
|
|
|
|
|
|
||
Значение по |
(числовые), |
|
|
|
||
умолч. |
(char), |
|
(boolean) |
|
|
|
|
|
|
|
|
||
Методы |
Нет методов |
|
|
Могут иметь методы (объекты) |
||
|
|
|
||||
Передача в |
По значению (копия |
По значению (копия ссылки) |
||||
методы |
значения) |
|
|
|
|
|
|
|
|
|
|
|
|
Пример |
, |
, |
, |
, |
, |
, |
|
|
|
|
пользовательские классы |
|
|
|
|
|
|
|
|
|
20. Массивы в Джава, объявление и инициализация массивов, длина массива, получение доступа к элементу массива
Массив в Java — это структура данных, которая хранит фиксированное количество элементов одного типа. Тип элементов может быть как примитивным, так и ссылочным.
Объявление массива:
Синтаксис:
или 
(первый вариант предпочтительнее).
На этом этапе память под элементы массива еще не выделяется, создается только ссылка, которая пока равна
.
Инициализация массива (выделение памяти и/или присвоение значений):
1.С использованием оператора
и указанием размера: Память выделяется, элементы получают значения по умолчанию (0 для числовых,
для
,
для
,
для ссылочных типов).
2.Объявление и инициализация с указанием размера в одной строке:
3.Инициализация с использованием списка значений (инициализатор массива): Размер массива определяется количеством элементов в списке. Оператор
неявно используется компилятором.
4.Объявление и инициализация списком значений в одной строке (можно и без
в этом случае):
Если объявление и инициализация происходят раздельно, то
обязательно:
Длина массива:
Длина массива (количество элементов) фиксируется при его создании и не может быть изменена.
Доступ к длине осуществляется через поле
(это поле, а не метод).
Получение доступа к элементу массива:
Доступ к элементам массива осуществляется по индексу.
Индексация начинается с 0. Последний элемент имеет индекс
. Синтаксис: 
Пример:
