Читайте также:
|
|
В языке Java определено восемь простых (или примитивных) типов данных. Для каждого простого типа данных отводится конкретный размер памяти, не зависящий от платформы, на которой выполняется приложение Java:
Таблица
Тип данных | Размер занимаемой области памяти | Значение по умолчанию |
boolean | false | |
byte | ||
char | 'x0' | |
short | ||
int | ||
long | ||
float | 0.0f | |
double | 0.0d |
Фактически размеры памяти, отведенные для хранения переменной, могут отличаться от приведенных выше, например, для хранения переменной типа short может быть зарезервировано слово размером 32 бита. Так как в языке Java нет указателей, вы не можете адресоваться к элементам массива чисел по относительному смещению этих элементов в оперативной памяти. Следовательно, точный размер элемента в данном случае не играет никакой роли.
Переменные простых типов инициализируются либо по умолчанию, либо явно. Однако участвовать в вычислениях могут только явно инициализированные переменные.
byte n =2;
float f;
int i; // инициализация 0 по умолчанию
...
f=(float)i/n; // ошибка, переменная i не инициализирована явно
i = 7;
f=(float)i/n; // верно
Переменные типа boolean могут принимать только два значения − true и false, не соотносимые с целыми значениями. Нельзя, выполнить преобразование типа boolean, например, к типу int.
В языке Java все целочисленные простые типы данных (byte, short, int и long) являются знаковыми.
Приложение Java может оперировать данными в формате с плавающей точкой, используемыми для хранения чисел с одинарной точностью (float), и с двойной (double).
Простые типы данных также имеют классы «оболочки» − встроенные замещающие классы, которые могут использоваться для создания объектов на основе этих типов. Например, вместо типа int использовать класс Integer, вместо типа long − класс Long и так далее.
Инициализации этих объектов должна выполняться с помощью конструктора, например:
int val = 5;
Integer Val; // создание неинициализированной ссылки
Val=new Integer(val); // инициализация ссылки
или
Integer Val=new Integer(5); // создание и инициализация ссылки
При этом не может использоваться конструктор без параметра.
После выполнения оператора присваивания ссылка Val будет ссылаться на реальный объект класса Integer и ее можно использовать. Пытка же использовать неинициализированную ссылку приводит к исключению.
Имя объекта Val типа Integer можно передавать функциям в качестве параметра, причем это будет ссылкой на объект.
Одна из существенных особенностей языка Java, состоит в том, что в языке Java нет указателей. Использование указателей в других языках часто приводит к появлению трудно обнаруживаемых ошибок. Поэтому разработчики Java решили отказаться от использования указателей совсем.
Фрагмент программы, написанный с использованием указателей на переменные простых типов, приведет к ошибке, так как переменные простых типов передаются по значению, а не по ссылке:
int val; // некоторая переменная
void ChangeVal(int *pVal, int nVal)
{
*pVal=nVal;
}
...
ChangeVal(&val, 5); // вызов функции
Язык Java позволяет использовать вместо указателей ссылки на объекты. Пользуясь этими ссылками, можно адресовать объекты по их имени, вызывая методы и изменяя значения данных объектов.
Дата добавления: 2015-09-11; просмотров: 73 | Поможем написать вашу работу | Нарушение авторских прав |