Переменные применяются к памяти для хранения значений. Другими словами, при создании переменной вам необходимо запросить место в памяти.
Система управления памятью выделяет место хранения переменным в соответствии с их типом, и выделенное пространство можно использовать только для хранения данных этого типа.
Таким образом, определяя переменные разных типов, в памяти можно хранить целые, десятичные числа или символы.
Два основных типа данных Java:
Встроенные типы данных
Справочный тип данных
Язык Java предоставляет восемь основных типов. Шесть числовых типов (четыре целых числа, два типа с плавающей запятой), символьный тип и логический тип.
тип байта:
Тип данных byte — это 8-битное целое число со знаком, представленное в дополнении до двух;
Минимальное значение — -128 (-2^7);
Максимальное значение — 127 (2^7-1);
Значение по умолчанию — 0;
Тип byte используется для экономии места в больших массивах, в основном заменяя целые числа, поскольку переменная byte занимает лишь четверть места типа int;
Пример: байт а = 100, байт б = -50.
короткий тип (короткий целочисленный тип):
Короткий тип данных представляет собой 16-битное целое число со знаком, дополненное до двух.
Минимальное значение — -32768 (-2^15);
Максимальное значение — 32767 (2^15 — 1);
Тип данных Short также может экономить пространство, например байт. Короткая переменная занимает половину места, занимаемого переменной типа int;
Значение по умолчанию — 0;
Пример: short s = 1000, short r = -20000.
тип int (целочисленный тип):
Тип данных int — это 32-битное целое число со знаком, представленное в дополнении до двух;
Минимальное значение — -2 147 483 648 (-2^31);
Максимальное значение — 2 147 483 647 (2^31 – 1);
Обычно целочисленные переменные по умолчанию имеют тип int;
Значение по умолчанию — 0;
Пример: int a = 100000, int b = -200000.
long (длинный целочисленный тип):
Тип данных long — это 64-битное целое число со знаком, представленное в дополнении до двух;
Минимальное значение — -9 223 372 036 854 775 808 (-2^63);
Максимальное значение — 9 223 372 036 854 775 807 (2^63 -1);
Этот тип в основном используется в системах, которым необходимо сравнивать большие целые числа;
Значение по умолчанию — 0L;
Пример: long a = 100000L, long b = -200000L.
float (тип с плавающей запятой одинарной точности):
Тип данных float — это 32-битное число одинарной точности с плавающей запятой, соответствующее стандарту IEEE 754;
float может сэкономить место в памяти при хранении больших массивов с плавающей запятой;
Значение по умолчанию — 0,0f;
Числа с плавающей запятой нельзя использовать для представления точных значений, таких как валюта;
Пример: число с плавающей запятой f1 = 234,5f.
double (тип двойной точности с плавающей запятой):
Тип данных double — это 64-битное число двойной точности с плавающей запятой, соответствующее стандарту IEEE 754;
Тип чисел с плавающей запятой по умолчанию — двойной;
Тип double также не может представлять точные значения, например валюту;
Значение по умолчанию — 0,0d;
Пример: двойной d1 = 123,4.
логическое значение:
Логический тип данных представляет один бит информации;
Есть только два значения: true и false;
Этот тип используется только как флаг для записи ситуаций «истина/ложь»;
Значение по умолчанию — false;
Пример: логическое значение = true.
символ (тип символа):
Тип char — это один 16-битный символ Юникода;
Минимальное значение — «u0000» (то есть 0);
Максимальное значение — «uffff» (то есть 65 535);
Тип данных char может хранить любой символ;
Пример: символьная буква = 'A'.
Для диапазона значений основных типов числовых типов нас не нужно заставлять запоминать, поскольку их значения определены в соответствующем классе-оболочке в виде констант. Пожалуйста, посмотрите следующий пример:
общественный класс PrimitiveTypeTest {
public static void main(String[] args) {
// байт
System.out.println("Базовый тип: байт. Двоичные цифры: " + Byte.SIZE);
System.out.println("Класс упаковки: java.lang.Byte");
System.out.println("Минимальное значение: Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("Максимальное значение: Byte.MAX_VALUE=" + Byte.MAX_VALUE);
Система.out.println();
// короткий
System.out.println("Базовый тип: короткие двоичные цифры: " + Short.SIZE);
System.out.println("Класс упаковки: java.lang.Short");
System.out.println("Минимальное значение: Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("Максимальное значение: Short.MAX_VALUE=" + Short.MAX_VALUE);
Система.out.println();
// целое число
System.out.println("Базовый тип: int Двоичные цифры: " + Integer.SIZE);
System.out.println("Класс упаковки: java.lang.Integer");
System.out.println("Минимальное значение: Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("Максимальное значение: Integer.MAX_VALUE=" + Integer.MAX_VALUE);
Система.out.println();
// длинный
System.out.println("Базовый тип: long Количество двоичных цифр: " + Long.SIZE);
System.out.println("Класс упаковки: java.lang.Long");
System.out.println("Минимальное значение: Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("Максимальное значение: Long.MAX_VALUE=" + Long.MAX_VALUE);
Система.out.println();
// плавать
System.out.println("Базовый тип: float Число двоичных цифр: " + Float.SIZE);
System.out.println("Класс упаковки: java.lang.Float");
System.out.println("Минимальное значение: Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("Максимальное значение: Float.MAX_VALUE=" + Float.MAX_VALUE);
Система.out.println();
//двойной
System.out.println("Базовый тип: двойные двоичные цифры: " + Double.SIZE);
System.out.println("Класс упаковки: java.lang.Double");
System.out.println("Минимальное значение: Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("Максимальное значение: Double.MAX_VALUE=" + Double.MAX_VALUE);
Система.out.println();
// символ
System.out.println("Базовый тип: char. Двоичные цифры: " + Символ.SIZE);
System.out.println("Класс упаковки: java.lang.Character");
// Вывод символов.MIN_VALUE на консоль в числовом виде вместо символьной формы System.out.println("Минимальное значение: Символ.MIN_VALUE="
+ (int) Символ.MIN_VALUE);
// Вывод символов.MAX_VALUE на консоль в числовом виде вместо символьной формы System.out.println("Максимальное значение: символов.MAX_VALUE="
+ (int) Символ.MAX_VALUE);
}
}
Результат компиляции приведенного выше кода следующий:
Базовый тип: байт. Двоичные цифры: 8.
Класс упаковки: java.lang.Byte
Минимальное значение: Байт.MIN_VALUE=-128.
Максимальное значение: Байт.MAX_VALUE=127.
Базовый тип: короткий. Двоичные цифры: 16.
Класс упаковки: java.lang.Short
Минимальное значение: Short.MIN_VALUE=-32768.
Максимальное значение: Short.MAX_VALUE=32767.
Базовый тип: int. Двоичные цифры: 32.
Класс упаковки: java.lang.Integer
Минимальное значение: Integer.MIN_VALUE=-2147483648.
Максимальное значение: Integer.MAX_VALUE=2147483647.
Базовый тип: длинный. Количество двоичных цифр: 64.
Класс упаковки: java.lang.Long
Минимальное значение: Long.MIN_VALUE=-9223372036854775808.
Максимальное значение: Long.MAX_VALUE=9223372036854775807.
Базовый тип: float Количество двоичных цифр: 32
Класс упаковки: java.lang.Float
Минимальное значение: Float.MIN_VALUE=1,4E-45.
Максимальное значение: Float.MAX_VALUE=3,4028235E38.
Базовый тип: двойной. Двоичные цифры: 64.
Класс упаковки: java.lang.Double
Минимальное значение: Double.MIN_VALUE=4,9E-324.
Максимальное значение: Double.MAX_VALUE=1,7976931348623157E308.
Базовый тип: char. Двоичные цифры: 16.
Класс упаковки: java.lang.Character
Минимальное значение: символ.MIN_VALUE=0.
Максимальное значение: Символ.MAX_VALUE=65535.
Минимальное и максимальное значения Float и Double выводятся в виде научной записи. «E+число» в конце означает, что число перед E следует умножить на «числовую» степень 10. Например, 3,14E3 — это 3,14×1000=3140, а 3,14E-3 — это 3,14/1000=0,00314.
На самом деле в JAVA есть еще один базовый тип void, которому также соответствует соответствующий класс упаковки java.lang.Void, но мы не можем напрямую с ним работать.
Переменные ссылочного типа создаются конструктором класса, и вы можете использовать их для доступа к объекту, на который ссылаетесь. Эти переменные при объявлении указываются как определенный тип, например, «Сотрудник», «Pubby» и т. д. После объявления переменной ее тип не может быть изменен.
Объекты и массивы являются ссылочными типами данных.
Значение по умолчанию для всех ссылочных типов равно нулю.
Ссылочную переменную можно использовать для ссылки на любой совместимый тип.
Пример: Animal Animal = new Animal("жираф").
Константа – это фиксированное значение. Они не требуют расчета и непосредственно представляют соответствующие значения.
Константа означает величину, которую нельзя изменить. Последний флаг используется в Java, а метод объявления аналогичен методу объявления переменных:
итоговый двойной PI = 3,1415927;
Хотя имена констант также могут быть строчными, для простоты идентификации для обозначения констант обычно используются прописные буквы.
Литералы можно присваивать переменным любого встроенного типа. Например:
байт а = 68;
символ а = 'А'
Байт, целое, длинное и короткое число могут быть представлены в десятичной, шестнадцатеричной и восьмеричной системе счисления.
При использовании констант префикс 0 указывает на восьмеричный формат, а префикс 0x — на шестнадцатеричный. Например:
целое десятичное = 100;
целое восьмеричное = 0144;
целое число шестнадцатеричное = 0x64;
Как и в других языках, строковые константы Java представляют собой последовательности символов, заключенные в две кавычки. Ниже приведен пример строкового литерала:
"Привет, мир"
"двеnстроки"
""Это в кавычках""
И строковые константы, и символьные константы могут содержать любой символ Юникода. Например:
символ а = ' u0001';
Строка a = "u0001";
Язык Java поддерживает некоторые специальные последовательности escape-символов.
символ | Значение символа |
---|---|
п | Перевод строки (0x0a) |
р | Введите (0x0d) |
е | Символ перевода формы (0x0c) |
б | Backspace (0x08) |
Нулевой символ (0x0) | |
с | нить |
т | символ табуляции |
" | двойные кавычки |
' | одинарная кавычка |
\ | обратная косая черта |
ддд | Восьмеричные символы (ддд) |
uxxxx | Шестнадцатеричные символы Юникода (xxxx) |
В этом разделе объясняются основные типы данных Java. В следующем разделе рассматриваются различные типы переменных и их использование.