Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции 2025. Java. Белая / Ответы на билеты. Java

.pdf
Скачиваний:
4
Добавлен:
02.01.2026
Размер:
4.52 Mб
Скачать

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. Последний элемент имеет индекс . Синтаксис:

Пример: