В Java, для хранения целочисленных значений есть целых четыре типа данных. Это byte, short, integer, long. Все эти типы данных являются знаковыми, то есть могут принимать как положительные, так и отрицательные значения.
byte smallest = 127;
short small = 32766;
int ordinary = 123456789;
Основная разница у них в том, сколько памяти они занимают. И соответственно какой диапазон значений могут принимать. От самого маленького byte размером 1 байт, и до long размером в 8 байт. Зачем и почему так сделано. Для того, что бы у программиста была возможность выбирать подходящий тип данных под конкретную задачу. К примеру, если диапазон ваших данных не превышает 50 значений, и вам необходимо пересылать эти данные большому количеству потребителей, то есть смысл использовать byte в качестве типа данных. А если вам надо хранить к примеру расстояние, то есть смысл использовать тип long . К примеру:
byte typeOfItem = 14;
long veryLong = 3_000_000_000_000_000_000L;
Стандартным типом данных для всех числовых литералов является integer . Литерал - это особый способ записи того или иного значения. По этому, для записи больших чисел которые больше, чем максимальное значение integer и вмещаются только в тип long , необходимо использовать суффикс L после числа.
long largest = 123456789123L;
Типы данных чисел с плавающей точкой.
В Java, для хранения значений чисел с плавающей точкой есть два элементарных типа данных. Это float , и double . Эти типы данных так же являются знаковыми, то есть могут принимать как положительные, так и отрицательные значения. Основное отличие этих типов в том, что они имеют разный размер в памяти, и из-за этого могут хранить разное количество знаков после запятой.
float - это тип данных одинарной точности. Может хранить без округления до 7 знаков после десятичной точки. Литералы этого типа данных обязаны заканчиваться буквой F или f .
float singlePrecision = 0.123456789f;
double - тип данных двойной точности. Может хранить без округления до 16-17 знаков после
десятичной точки. Литералы этого типа данных могут заканчиваться буквой D или d .
double doublePrecision = 0.123456789012345678;
Стандартным типом данных для всех числовых литералов с плавающей точкой, является тип данных double . По этому если вы хотите указать, что это тип float , вы просто обязаны указать суффикс F или f .
Операции / Operators
Над переменными можно проводить разные операции. Операции - это такие действия, которые некоторым образом изменяют значение переменной или выражения. Типы операций, а так же их смысл, определяются в зависимости от типа данных. К примеру операция + для целых чисел означает математическое сложение, а для строк - соединение двух строк в одну. Операция - - это вычитание одного числа от другого, или смена знака числа, а для строк она вообще не определена.
Прежде чем я продолжу, я хочу дать определение некоторым новым терминам.
Операнд - это некий объект, к примеру число, над которым применяется операция. Операндом в языке программирования может быть переменная, константа, метод, и выражение.
Унарные операции - те, которые применяются только к одному операнду. Таких операций в Java всего несколько, это, к примеру, операция смены знака числа (-2), или логического отрицания (солнечно = !дождливо).
Бинарные операции - это такие операции, которые применяются только к двум операндам. Все бинарные операции являются инфиксными, то есть такими, которые записываются между операндами. Это все остальные операции, такие как, к примеру: сложение, вычитание, сравнение, логическое ИЛИ, и прочие.
Префиксные операции - это такие унарные операции, которые ставятся перед операндом. Примеры: Операция смены знака числа, операция логического отрицания.
Все операции в Java делятся на несколько категорий: присваивания, математические, сравнения, логические, битовые, приведения типа, и другие.
Операция присваивания
Для определения значения переменной используется операция присваивания. С левой стороны задается имя переменной, с правой стороны значение. // тип, имя, присвоить, значение
int a;
a = 42;
int b = a;
float c = b + 0.42f;
Операция пример описание
=
a = 20; b = 30;
a = b = 40 + 20;
a = (b = 40) + 20;
a = a - 40 * 2;
a = Math.abs(a);
присваивание значения
переменной
*=
/=
%=
+=
-=
a *= 2; // a = a * 2;
a %= 2; // a = a % 2;
a += 2 + 3; // a = a + (2 + 3);
a -= 2 * 3; // a = a - (2 * 3);
a /= 2 + 3; // a = a / (2 + 3);
Все эти операции являются сокращением от полной записи:
a = a oper (b);
что эквивалентно
a oper= b;
Математические операции
Для всех числовых типов данных, в языке программирования Java, определены стандартные математические операции: сложение, вычитание, умножение, деление, и получения остатка от деления.
int add = 3 + 4; // сложение
int sub = 3 - 4; // вычитание
int mult = 3 * 4; // умножение
// порядок вычисления можно контролировать круглыми скобками
int mult2 = 3 + 4 * 2;
int mult3 = (3 + 4) * 2;
// целочисленное деление с усечением дробной части
int div = 7 / 3;
// деление с сохранением дробной
// части. Один из операндов должен быть числом
// (или переменной) с типом чисел с плавающей точкой.
float divF = 7 / 3.0f;
// остаток от деления
int mod = 7 % 3;
Кроме всего этого, Java поддерживает большое количество других математических действий, которые находятся в объекте Math . К примеру abs() , sin() , max() , sqrt() , floor() , и так далее.