Автор: Widowmaker1984

Вопросы 4, 5 (про примитивные типы)

"На какие основные группы можно поделить типы данных?"
"Какие примитивные типы вы знаете? Назовите размерность в байтах для каждого типа."


1. Типы данных делятся на две категории:
- примитивные
- ссылочные

1.1. Примитивные типы служат основой для всех остальных типов данных и обладают явным диапазоном допустимых значений. Они не являются объектно-ориентированными и аналогичны простым типам большинства традиционных языков программирования. Ссылочные типы - это все остальные типы: классы, перечисления и интерфейсы, а также массивы.

2. Примитивные типы можно разделить на четыре группы:
- Целые. К ним относятся типы byte, short, int и long. Эти типы предназначены для целых чисел со знаком.
- Типы с плавающей точкойfloat и double. Они служат для представления чисел, имеющих дробную часть.
- Символьный тип char. Этот тип предназначен для представления элементов из таблицы символов, например, букв или цифр.
- Логический тип boolean. Это специальный тип, используемый для представления логических величин.

скрытый текст2.1. Целочисленные типы различаются между собой только диапазонами возможных значений. В языке Java понятие беззнаковых чисел отсутствует. Все числовые типы этого языка — знаковые.

byte (8 бит): от -128 до 127
short (16 бит): от -32768 до 32767
int (32 бит): от -2147483648 до 2147483647
long (64 бит): от -9223372036854775808 до 9223372036854775807

2.1.1. Переменные типа byte полезны при работе с потоком данных, который поступает из сети или файла. Тип int при работе с целочисленными данными используется чаще, нежели byte и short, даже если их диапазона хватает. Это происходит потому, что всякий раз, когда в одном выражении фигурируют переменные типов byte, short, int и целые литералы, тип всего выражения перед завершением вычислений приводится к int. Тип long удобен для работы с большими целыми числами. Его диапазон допустимых значений достаточно велик даже для таких задач, как подсчет числа атомов во вселенной.

2.1.2. Не надо отождествлять разрядность целочисленного типа с занимаемым им количеством памяти. Исполняющий код Java может использовать для ваших переменных то количество памяти, которое сочтет нужным, лишь бы только их поведение соответствовало поведению заданных вами типов. Фактически, нынешняя реализация Java из соображений эффективности хранит переменные типа byte и short в виде 32-битовых значений, поскольку этот размер соответствует машинному слову большинства современных компьютеров.

2.1.3. Тип int для целочисленных литералов считается видом значения по умолчанию. Чтобы он интерпретировался, как long, можно поставить в конец L: например, 100L. Для прочих целочисленных типов аналогичных суффиксов нет, и используется явное приведение типа:

byte foo = (byte)0;
short bar = (short)0;

2.2. Числа с плавающей точкой, часто называемые в других языках вещественными числами, используются при вычислениях, в которых требуется использование дробной части. В Java реализован стандартный набор типов для чисел с плавающей точкой — float и double и операторов для работы с ними.

double (64 бита) 1. 7е-308.. 1. 7е+ 308
float (32 бита) 3. 4е-038.. 3. 4е+ 038

2.2.2. Вещественный тип для литералов "по умолчанию" double, для float в конец ставится F. Этот тип удобен для использования, когда не требуется особой точности в дробной части числа.

float f;
float f2 = 3. 14F;
double d;
double pi = 3. 14159265358979323846;


Все "трансцендентные" (тригонометрические, показательные, логарифмические, и.т.п.) математические функции, такие, как sin, cos, sqrt, возвращают результат типа double.

2.3. В Java для представления символов в строках используется кодировка Unicode. Это объединение десятков кодировок символов, он включает в себя латинский, греческий, арабский алфавиты, кириллицу и многие другие наборы. Диапазон типа char — 0..65536. Иногда его тоже относят к целочисленным типам из-за особенностей представления в памяти и традиций.

char (16 бит): один символ UTF-16 (буквы и цифры)

2.3.1. Хотя величины типа char и не используются, как целые числа, с ними можно оперировать, как если бы они были целыми. Это дает возможность сложить два символа вместе или инкрементировать значение символьной переменной.

int three = 3;
char оne = '1';
char four = (char) (three+ оne);


Тип переменной one в приведенном выше выражении повышается до типа int, так что перед занесением результата в переменную four приходится использовать оператор явного приведения типа.

2.3.2. Символы char можно задавать также при помощи соответствующих чисел.

char symb1=1067;
char symb2 ='Ы';


2.3.3. Пример, как узнать, какому числу соответствует символ. Основан на претиповании данных:
char ch = 'J';
int intCh = (int) ch;


2.4. В языке Java имеется простой тип boolean, используемый для хранения логических значений.

boolean (8 бит в массивах, 32 бита не в массивах, т.к. используется int): true (истина) или false (ложь)

2.4.1. Значения типа boolean возвращаются в качестве результата всеми операторами сравнения, например (а < b). Также boolean — это тип, требуемый всеми условными операторами управления — такими, как if, while, do.
1

Комментарии


Лучшее   Правила сайта   Вход   Регистрация   Восстановление пароля

Материалы сайта предназначены для лиц старше 16 лет (16+)