Trial book

Типы данных

В Java существуют следующие базовые типы данных:

Тип данных Объем занимаемой памяти Диапазон значений Значение по умолчанию
byte 1 байт Целые числа -128 : 127 0
short 2 байта Целые числа -32768 : 32767 0
int 4 байта Целые числа -2147483648 : 2147483647 0
long 8 байт Целые числа -2^63 : 2^63 0L
float 4 байта Вещественные 1,4*10^-45 0.0f
double 8 байт Вещественные 4.9^-324 : 1.8^308 0.0d
char 2 байта Натуральные 0:65535 '\u0000'
boolean 1 бит (минимум) false или true false

Приведение типов

Автоматическое (неявное) приведение типов

int a = 5;
int b = 10;
double c = a + b;

Внимание!

byte x = 2;
byte y = x + 2;

Выдаст ошибку, т.к. неявное приведение типов к менее точному не работает.

Ручное (явное) приведение типов

double a = 3,5;
int b = (int) a;

С учетом этого приведем приведенный ранее пример к рабочему виду

byte x = 2;
byte y = (byte) (x + 2);

Вопрос 1.

Для чего нужна типизация данных? Какой цели служит разграничение различных типов данных?

Вопрос 2.

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

Вопрос 3.

Как вы думаете, почему неявное приведение типов работает только в одном направлении - от менее точных к более точным типам?

Рассмотрите следующий пример:

double a = 17,6
double b = 14,8

int c = (int)(a + b);
int d = (int)a + (int)b;

Какие значения будут присвоены переменным c и d? Почему?