Java Типы данных
Типы данных Java
Как объяснялось в предыдущей главе, переменная в Java должна иметь указанный тип данных:
Пример
int myNum = 5; // Integer (целое число)
float myFloatNum = 5.99f; // Число с плавающей запятой
char myLetter = 'D'; // Символ
boolean myBool = true; // Булево
String myText = "Hello"; // Строка
Типы данных делятся на две группы:
- Примитивные типы данных — включают
byte
,short
,int
,long
,float
,double
,boolean
andchar
- Непримитивные типы данных, такие как String, Arrays и Classes (вы узнаете больше об этом в следующей главе)
Примитивные типы данных
Примитивный тип данных определяет размер и тип значений переменных и не имеет дополнительных методов.
В Java существует восемь примитивных типов данных:
Тип данных | Размер | Описание |
---|---|---|
byte | 1 byte | Сохраняет целые числа от -128 до 127 |
short | 2 bytes | Сохраняет целые числа от -32 768 до 32 767 |
int | 4 bytes | Хранит целые числа от -2 147 483 648 до 2 147 483 647 |
long | 8 bytes | Сохраняет целые числа от -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
float | 4 bytes | Хранит дробные числа. Достаточно для хранения от 6 до 7 десятичных цифр |
double | 8 bytes | Хранит дробные числа. Достаточно для хранения 15 десятичных цифр |
boolean | 1 bit | Сохраняет значения true или false |
char | 2 bytes | Сохраняет один символ/букву или значения ASCII |
Числа
Типы примитивных чисел делятся на две группы:
Целочисленные типы хранят целые числа, положительные или отрицательные (например, 123 или -456), без десятичных знаков. Допустимые типы byte
, short
, int
и long
. Какой тип следует использовать, зависит от числового значения.
Типы с плавающей запятой представляют числа с дробной частью, содержащие один или несколько десятичных знаков. Есть два типа: float
и double
.
Несмотря на то, что в Java существует много числовых типов, чаще всего для чисел используются int
(для целых чисел) и double
(для чисел с плавающей запятой). Однако мы опишем их все, пока вы всё ещё продолжаете это читать 😀
Целочисленные типы
Byte
Тип данных byte
может хранить целые числа от -128 до 127. Его можно использовать вместо int
или другие целые типы для экономии памяти, когда вы уверены, что значение будет в диапазоне от -128 до 127:
Short
Тип данных short
может хранить целые числа от -32768 до 32767:
Int
Тип данных int
может хранить целые числа от -2 147 483 648 до 2 147 483 647. В целом и в нашем учебнике тип данных int
является предпочтительным типом данных, когда мы создаем переменные с числовым значением.
Long
Тип данных long
может хранить целые числа от -9223372036854775808 до 9223372036854775807. Он используется, когда int недостаточно велик для хранения значения. Обратите внимание, что вы должны заканчивать значение символом "L":
Типы с плавающей запятой
Вы должны использовать тип с плавающей запятой всякий раз, когда вам нужно число с десятичной запятой, например 9.99 или 3.14515.
Float
Тип данных float
может хранить дробные числа от 3.4e−038 до 3.4e+038. Обратите внимание, что вы должны заканчивать значение символом "f":
Double
Тип данных double
может хранить дробные числа от 1.7e−308 до 1.7e+308. Обратите внимание, что вы должны заканчивать значение символом "d":
Использовать float
или double
?
точность значения с плавающей запятой указывает, сколько цифр значение может иметь после запятой. Точность float
составляет всего шесть или семь десятичных цифр, в то время как точность переменных double
составляет около 15 цифр. Поэтому для большинства расчетов безопаснее использовать double
.
Научные числа
Число с плавающей запятой также может быть научным числом с буквой "е", обозначающей степень 10:
Пример
float f1 = 35e3f;
double d1 = 12E4d;
System.out.println(f1);
System.out.println(d1);
Попробуйте сами »
Логические (булевы) значения
Логический тип данных объявляется с помощью ключевого слова boolean
и может принимать только значения true
или false
:
Пример
boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun); // Выведет true
System.out.println(isFishTasty); // Выведет false
Попробуйте сами »
Логические (булевы) значения в основном используются для условного тестирования, о котором вы узнаете больше в следующей главе.
Символы
Тип данных char
используется для хранения одиночного символа. Символ должен быть заключен в одинарные кавычки, например 'A' или 'c':
Кроме того, вы можете использовать значения ASCII для отображения определенных символов:
Пример
char myVar1 = 65, myVar2 = 66, myVar3 = 67;
System.out.println(myVar1);
System.out.println(myVar2);
System.out.println(myVar3);
Попробуйте сами »
Совет: Список всех значений ASCII можно найти в Справочнике по таблицам ASCII на нашем сайте W3Schools на русском.
Строки
Тип данных String
используется для хранения последовательности символов (текста). Строковые значения должны быть заключены в двойные кавычки:
Тип String настолько часто используется и интегрирован в Java, что некоторые называют его "специальным девятым типом".
Строка в Java на самом деле является непримитивным типом данных, поскольку она ссылается на объект. Объект String имеет методы, которые используются для выполнения определенных операций со строками. Не волнуйтесь, если вы пока не понимаете термин "объект". Вы узнаете больше о строках и объектах в следующей главе.
Непримитивные типы данных
Непримитивные типы данных называются ссылочными типами, поскольку они относятся к объектам.
Основное различие между примитивными и непримитивными типами данных заключается в следующем:
- Примитивные типы предопределены (уже определены) в Java. Непримитивные типы создаются программистом и не определяются в Java (за исключением
String
) - Непримитивные типы можно использовать для вызова методов для выполнения определенных операций, в то время как примитивные типы не могут
- Примитивный тип всегда имеет значение, в то время как непримитивные типы могут быть
null
- Примитивный тип начинается со строчной буквы, а не примитивный — с прописной
- Размер примитивного типа зависит от типа данных, в то время как непримитивные типы имеют одинаковый размер
Примеры непримитивных типов: Strings, Arrays, Classes, Interface и др. Вы узнаете больше об этом в следующей главе.