Типы данных

В 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.4e-45 : 3.4e+38

0.0f

double

8 байт

Вещественные 4.9e-324 : 1.8e+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? Почему?

Last updated