Одной из основных особенностей Java является то, что данный язык является строго типизированным. А это значит, что каждая переменная представляет определенный тип и данный тип строго определен.
Итак, рассмотрим систему встроенных базовых типов данных, которая используется для создания переменных в Java. А она представлена следующими типами.
- boolean: хранит значение
true
илиfalse
- byte: хранит целое число от
-128
до127
и занимает 1 байт - short: хранит целое число от
-32768
до32767
и занимает 2 байта - int: хранит целое число от
-2147483648
до2147483647
и занимает 4 байта - long: хранит целое число от
–9 223 372 036 854 775 808
до9 223 372 036 854 775 807
и занимает 8 байт - float: хранит число с плавающей точкой от
-3.4*1038
до3.4*1038
и занимает 4 байта - double: хранит число с плавающей точкой от
±4.9*10-324
до±1.8*10308
и занимает 8 байт - char: хранит одиночный символ в кодировке Unicode и занимает 2 байта, поэтому диапазон хранимых значений от
0
до65536
Объявление переменных
Переменные объявляются следующим образом: тип_данных имя_переменной
. Например, int x;
. В этом выражении мы объявляем переменную x типа int
. То есть x будет хранить некоторое число не больше 4 байт.
В качестве имени переменной может выступать любое произвольное название, которое удовлетворяет следующим требованиям:
- имя может содержать любые алфавитно-цифровые символы, а также знак подчеркивания, при этом первый символ в имени не должен быть цифрой
- в имени не должно быть знаков пунктуации и пробелов
- имя не может быть ключевым словом языка Java
Кроме того, при объявлении и последующем использовании надо учитывать, что Java — регистрозависимый язык, поэтому следующие объявления int num;
и int NUM;
будут представлять две разных переменных.
Объявив переменную, мы можем тут же присвоить ее значение или инициализировать ее. Инициализация переменных представляет присвоение переменной начального значения, например: int x=10;
. Если мы не проинициализируем переменную до ее использования, то мы можем получить ошибку, например, в следующем случае:
1 2 |
int x; System.out.println(x); |
Некоторые варианты объявления переменных:
1 2 3 4 5 6 7 8 9 |
boolean active = true; int x; int y = 10; int y = 99_999_999; byte num = 50; char c = 's'; double d = 1.5; int a = 4; int z = a + 5; |
Работа с разными системами счисления целых чисел
Как правило, значения для целочисленных переменных задаются в десятичной системе счисления, однако мы можем применять и другие системы исчисления. Например:
1 2 3 |
int num111 = 0x6F; // 16-тиричная система, число 111 int num8 = 010; // 8-ричная система, число 8 int num13 = 0b1101; // 2-ичная система, число 13 |
Для задания шестнадцатеричного значения после символов 0x указывается число в шестнадцатеричном формате. Таким же образом восьмеричное значение указывается после символа 0, а двоичное значение — после символов 0b.
Использование суффиксов
При присвоении переменной типа float значения с плавающей точкой Java автоматически рассматривает это значение как объкт типа double
. И чтобы указать, что данное значение должно рассматриваться как float
, нам надо использовать суффикс f:
1 2 |
float fl = 30.6f; double db = 30.6; |
И хотя в данном случае обе переменных имеют практически одно значения, но эти значения будут по-разному рассматриваться и будут занимать разное место в памяти.
Символы и строки
В качестве значения переменная символьного типа получает одиночный символ, заключенный в ординарные кавычки: char ch='e';
. Кроме того, переменной символьного типа также можно присвоить целочисленное значение от 0
до 65536
. В этом случае переменная опять же будет хранить символ, а целочисленное значение будет указывать на номер символа в таблице символов Unicode. Например:
1 2 |
char ch=102; // символ 'f' System.out.println(ch); |
Еще одной формой задания символьных переменных является шестнадцатеричная форма: переменная получает значение в шестнадцатеричной форме, которое следует после символов «\u». Например, char ch='\u0066';
опять же будет хранить символ ‘f’.
Символьные переменные не стоит путать со строковыми, ‘a’ не идентично «a». Строковые переменные представляют объект String
, который в отличие от char или int не является примитивным типов в Java:
1 2 |
String hello = "Hellow..."; System.out.println(hello); |
Константы
Переменные можно объявить один раз в программе и затем несколько раз присваивать им различные значения:
1 2 3 |
int num=5; num=57; num=89; |
Но в Java также имеются константы. В отличие от переменных константам можно присвоить значение только один раз. Константа объявляется также, как и переменная, только вначале идет ключевое слово final:
1 2 |
final int num=5; num=57; // так мы уже не можем написать, так как num - константа |
Константы позволяют задать такие переменные, которые не должны больше изменяться. Например, если у нас есть переменная для хранения числа pi, то мы можем объявить ее константой, так как ее значение постоянно.