Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГТЭУ инфа экзамен.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
149.71 Кб
Скачать
  1. Объектные и ссылочные типы данных Java.

Типы данных

Java является строго типизированным языком. Это означает, что любая переменная и любое выражение имеют известный тип еще на момент компиляции. Такое строгое правило позволяет выявлять многие ошибки уже во время компиляции. Все типы данных разделяются на две группы. Первую составляют 8 простых, или примитивных, типов данных, которые подразделяются на 3 подгруппы. К первой относятся : byte, int,log, short,char. Вторая подругппа (дробные): float double.К третьей(булевой): Boolean. Вторую группу составляют объектные, или ссылочные, типы данных. Это все классы, интерфейсы и массивы.

Примитивные переменные являются действительными хранилищами данных. Каждая переменная имеет значение, не зависящее от остальных. Ссылочные же переменные хранят лишь ссылки на объекты, причем различные переменные могут ссылаться на один и тот же объект.

Переменные используются в программе для хранения данных. Любая переменная имеет три базовых характеристики: * имя; * тип; * значение. Имя уникально идентифицирует переменную и позволяет обращаться к ней в программе. Тип описывает, какие величины может хранить переменная. Значение – текущая величина, хранящаяся в переменной на данный момент. Работа с переменной начинается с ее объявления и задания типа. Любое объявление переменной имеет свою область действия, границы которой зависят от того, где именно расположено это объявление. При помещении фрагмента текста программы в пару фигурных скобок { } создается новый блок. Блоки в программе на языке Java могут быть вложенными. Переменная доступна в блоке только в том случае, если она определена в этом блоке или в одном из вышестоящих блоков, в который входит текущий блок.

Объявление переменных и их инициализация задается типом, именем и специальным инициализатором в виде константы или выражения, которое вычисляется во время компиляции. При объявлении переменной может использоваться ключевое слово final. Тогда при выполнении программы переменная не меняет своего значения. Таким образом примитивные переменные являются действительными хранилищами данных и их значение независит от остальных. Ссылочные переменные хранят ссылки на объекты ,причем различные переменные могут ссылаться на один и тот же объект.

Литерал null может принимать переменная любого ссылочного типа. Значение null можно передавать в качестве любого объектного аргумента при вызове ф-ций.

Память в java представляется не набором байтов ,а в виде виртуального пространства, в котором существуют объекты. Поэтому доступ к памяти осуществляется не по физическому адресу или указателю, а через ссылки на объекты. Ссылка возвращается при создании объекта и далее может храниться в переменной или передаваться в качестве аргумента.java допускает наличие нескольких ссылок на один объект. Если в процессе выполнения программы на объект не существует ни одной ссылки, то он становится «мусором», и уничтожается автоматическом сборщиком мусора ,работающим как фоновый процесс jvm.

Особенности работы с примитивными и ссылочными типами данных.Целочисленные типы(byte, short, int,log,) имеют 1, 2, 4 и 8 байтов соответственно. длина char2. Над целочисленными аргументами можно производить следующие операции :1)сравнения( возвращает булевское значение) 2) цифровые операции, к которым относятся унарные операции (единичные), арифметические ,операции инкремента и декремента, операции битового сдвига и битовые операции.3) оператор с условием –это ? : 4) оператор приведения типов 5)оператор конкатенации со строкой.

Операторы + и – могут быть бинарными (иметь 2 операнда) и унарными. Унарный оператор всегда возвращает значение равное аргументу.

Оператор с условием. Позволяет привести операнды к одному типу. Оператор конкатенации со строкой может принимать в качестве аргумента только строковую величину. Конкатенация –соединение строк.

Целочисленные типы – это byte, short, int, long, char.

Дробные (вещественные) типы Язык Java поддерживает числа и переменные с плавающей точкой обычной и двойной разрядности –типы float и double.

их длина 4 и 8 байтов соответственно. Над дробными аргументами модно производить следующие операции :сравнения, числовые операции( унарные ,арифметические ,декремента) ,оператор с условием, оператор приведения типов, оператор конкотинации со строкой. Для дробных вычислений могут появляться два типа переполнения: overflow, underflow.java автоматически устраняет некорректные ситуации связанные с положительной и отрицательной бесконечностью, значением –нечислом (Not-a-number,NaN) и положительных и отрицательных нулей. Дробные типы имеют классы обертки (Float , Double)включающие дополнительные функции по обработке числовых величин.

Булев тип представлен всего одним типом boolean, который может хранить всего два возможных значения – true и false. Над булевскими аргументами можно производить следующие операции: сравнения, логические, операторы с цусловием, оператор конкатенации со срокой. Оператор кокатенации превращает строку в текст в зависимости от значений. Булевские выражения могут использоваться в качестве критериев условного перехода if. Число не может быть интерпретировано в виде булевского выражения, а ссылочные величины преобразуются в тип Буля в выражение ref!=null .

Выражение ссылочного типа имеет значение либо null, либо ссылку, указывающую на некоторый объект в виртуальной памяти Java машины. " Определения классы, интерфейсы и массивы мы рассмотрим далее и более подробно.