- Java Типы данных
- Числа
- Целочисленные типы
- Byte
- Пример
- Short
- Пример
- Int
- Пример
- Long
- Пример
- Типы с плавающей запятой
- Float
- Пример
- Double
- Пример
- Научные числа
- Пример
- Логические (булевы) значения
- Пример
- Символы
- Пример
- Пример
- Строки
- Пример
- Непримитивные типы данных
- Примитивные типы Java
- 1. Целые типы переменных
- 2. Вещественные типы переменных
- 3. Булевский тип переменных
Java Типы данных
Примитивный тип данных определяет размер и тип значений переменных и не имеет дополнительных методов.
В 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 и др. Вы узнаете больше об этом в следующей главе.
Примитивные типы Java
Как уже говорилось, в Java определены следующие примитивные типы:
- целые типы;
- вещественные типы;
- булевский тип.
За оператором объявления примитивной переменной может следовать оператор инициализации » = «, с помощью которого созданной переменной присваивается начальное значение.
1. Целые типы переменных
Целые типы различаются по размеру отведенной для них памяти. Характеристики целочисленных типов приведены в табл. 1.1. Табл. 1.1. Характеристики целочисленных типов Java Как видно из приведенной таблицы, целые переменные, за исключением типа char , считаются в языке Java переменными со знаком. Целочисленные константы могут задаваться в программе одним из трех способов: в виде десятичных, шестнадцатеричных и восьмеричных значений. По умолчанию все числа интерпретируются как десятичные и относятся к типу int . Явно указать принадлежность к типу long можно, добавив в конце числа букву «l» или букву «L» . Шестнадцатеричное значение задается с помощью символов «0x» или «0X» , за которым значение числа (цифры 0-9 и буквы A-F или a-f ), например: 0x7FFF . Число в восьмеричной записи должно начинаться с нуля, за которым следует одна или несколько восьмеричных цифр, например 077777 . Восьмеричные и шестнадцатеричные числа могут быть как положительными, так и отрицательными и изменяются в тех же диапазонах, что и числа в десятичном представлении (например, шестнадцатеричные числа типа byte имеют максимальное значение 0x7F и минимальное значение – 0x80 , а восьмеричные – соответственно 177 и – 200 ) Примеры объявления целых переменных:
int x = 0; long i, j, k; byte a1 = 0xF1, a2 = 0x07; short r1 = 017;
Символы в Java определяются с помощью ключевого слова char и реализованы с использованием стандарта Unicode. Можно задать константу-символ в программе или как обычный символ. Символьное значение должны быть заключено в пару одиночных апострофов, например:
Другой способ записи символов: пара символов «\u» , за которой следует четырехзначное шестнадцатеричное число (в диапазоне от 0000 до FFFF ), представляющее собой код символа в Unicode, например:
Некоторые символы, отсутствующие на клавиатуре, можно задавать с помощью так называемых escape-последовательностей, содержащих символ » \ «, за которым следует буквенный символ, идентифицирующий escape-последовательность, как показано в табл. 1.2. Табл. 1.2. Escape-последовательности, используемые в языке Java
2. Вещественные типы переменных
Язык Java поддерживает числа и переменные с плавающей точкой обычной и двойной разрядности – типы float и double . Для чисел с плавающей точкой нужно указывает целую и дробную часть, разделенные точкой, например 4.6 или 7.0 . Для больших чисел можно использовать экспоненциальную форму записи (для отделения мантиссы от порядка используется символ «e» или символ «E» ), например, число -3,58×107 записывается как –3.58E7 , а число 73,675×10-15 – как 73.675e-15 . Характеристики вещественных типов Java представлены в табл. 2.1. Табл. 2.1. Характеристики вещественных типов Java Переменные с плавающей точкой могут хранить не только численные значения, но и любой из особо определенных флагов (состоянии): отрицательная бесконечность, отрицательный нуль, положительная бесконечность, положительный нуль и «отсутствие числа» (not-a-number, NaN ). Все константы с плавающей точкой подразумеваются принадлежащими к типу double . Чтобы задать число типа float , необходимо добавить в его конец символ «f» или символ «F» . Примеры объявления переменных с плавающей точкой:
float x1 = 3.5f, x2 = 3.7E6f, x3 = -1.8E-7f; double z = 1.0;
3. Булевский тип переменных
Переменные булевского типа (логические переменные) могут принимать одно из двух значений: «истина» или «ложь» и используются в языках программирования в операциях отношения (сравнения) и логических операциях. Так, результатом сравнения
будет «ложь». В отличие от C, где результату «ложь» сопоставлено целое значение типа int , равное 0, а результату «истина» – ненулевое значение типа int , и, соответственно, результатам сравнения присваивается целое значение (обычно 0 или 1), в Java для булевских переменных введен свой, отдельный тип данных. Переменные булевского типа в Java задаются с помощью ключевого слова boolean и могут иметь лишь одно из двух значений: true или false, например