ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
Язык программирования Java. Уроки для начинающих

En Ua

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 and char
  • Непримитивные типы данных, такие как 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:

Пример

byte myNum = 100;
System.out.println(myNum);
Попробуйте сами »

Short

Тип данных short может хранить целые числа от -32768 до 32767:

Пример

short myNum = 5000;
System.out.println(myNum);
Попробуйте сами »

Int

Тип данных int может хранить целые числа от -2 147 483 648 до 2 147 483 647. В целом и в нашем учебнике тип данных int является предпочтительным типом данных, когда мы создаем переменные с числовым значением.

Пример

int myNum = 100000;
System.out.println(myNum);
Попробуйте сами »

Long

Тип данных long может хранить целые числа от -9223372036854775808 до 9223372036854775807. Он используется, когда int недостаточно велик для хранения значения. Обратите внимание, что вы должны заканчивать значение символом "L":

Пример

long myNum = 15000000000L;
System.out.println(myNum);
Попробуйте сами »

Типы с плавающей запятой

Вы должны использовать тип с плавающей запятой всякий раз, когда вам нужно число с десятичной запятой, например 9.99 или 3.14515.

Float

Тип данных float может хранить дробные числа от 3.4e−038 до 3.4e+038. Обратите внимание, что вы должны заканчивать значение символом "f":

Пример

float myNum = 5.75f;
System.out.println(myNum);
Попробуйте сами »

Double

Тип данных double может хранить дробные числа от 1.7e−308 до 1.7e+308. Обратите внимание, что вы должны заканчивать значение символом "d":

Пример

double myNum = 19.99d;
System.out.println(myNum);
Попробуйте сами »

Использовать 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':

Пример

char myGrade = 'B';
System.out.println(myGrade);
Попробуйте сами »

Кроме того, вы можете использовать значения 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 greeting = "Hello World";
System.out.println(greeting);
Попробуйте сами »

Тип String настолько часто используется и интегрирован в Java, что некоторые называют его "специальным девятым типом".

Строка в Java на самом деле является непримитивным типом данных, поскольку она ссылается на объект. Объект String имеет методы, которые используются для выполнения определенных операций со строками. Не волнуйтесь, если вы пока не понимаете термин "объект". Вы узнаете больше о строках и объектах в следующей главе.


Непримитивные типы данных

Непримитивные типы данных называются ссылочными типами, поскольку они относятся к объектам.

Основное различие между примитивными и непримитивными типами данных заключается в следующем:

  • Примитивные типы предопределены (уже определены) в Java. Непримитивные типы создаются программистом и не определяются в Java (за исключением String)
  • Непримитивные типы можно использовать для вызова методов для выполнения определенных операций, в то время как примитивные типы не могут
  • Примитивный тип всегда имеет значение, в то время как непримитивные типы могут быть null
  • Примитивный тип начинается со строчной буквы, а не примитивный — с прописной
  • Размер примитивного типа зависит от типа данных, в то время как непримитивные типы имеют одинаковый размер

Примеры непримитивных типов: Strings, Arrays, Classes, Interface и др. Вы узнаете больше об этом в следующей главе.


Проверьте себя с помощью упражнений

Упражнение:

Добавьте правильный тип данных для следующих переменных:

 myNum = 9;
 myFloatNum = 8.99f;
 myLetter = 'A';
 myBool = false;
 myText = "Hello World";