Все виды литералов в Java
Значения примитивных типов данных в большинстве случаев инициализируются с помощью литералов. Давайте рассмотрим какого типа они бывают в Java.
1. Числовые литералы
1.1. Целочисленные литералы
Типы целочисленных литералов в Java:
- десятичные
- восьмеричные
- шестнадцатеричные
- двоичные - начиная с Java 7
Все целочисленные литералы представляют значения int. Если значение литерала лежит в диапазоне byte
, short
или char
, то его можно присвоить переменной этого типа без приведения типов. Для создания литерала типа long
, необходимо явно указать компилятору, дополнив литерал буквой 'l'
или 'L'
:
long a1 = 220433L;
long a2 = 0x3FFl;
Десятичные литералы
int x1 = 878;
int x2 = +878;
int x3 = -878;
Восьмеричные литералы
Восьмеричные литералы начинаются с 0 и используют числа от 0 до 7, например:
int six = 06; // Равно десятичному числу 6
int seven = 07; // Равно десятичному числу 7
int eight = 010; // Равно десятичному числу 8
int nine = 011; // Равно десятичному числу 9
Шестнадцатеричные литералы
- Шестнадцатеричные литералы создаются используя следующие символы
[0-9a-fA-F]
- Должны начинаться с
0x
или0X
. - Разрешается использовать до 16 символов в шестнадцатеричных числах, не учитывая префикс
0x
и необязательный суффиксL
.
Например:
int a1 = 0X0005;
int a2 = 0x7ddfffff;
int a3 = 0xcccccccc;
Двоичные литералы в Java 7
Для определения двоичного литерала, добавьте префикс 0b
или 0B
к числу. Используются числа 0 и 1. Например:
int i1 = 0b101;
int i2 = 0B101;
1.2. Литералы с плавающей точкой
double d1 = 145454545.676767676;
double d2 = .4;// число 0.4
Всем литералам с плавающей точкой по умолчанию присваивается тип double
. Чтобы создать литерал типа float
, нужно после литерала указать букву 'f'
или 'F'
.
Например:
float f1 = 56.45455; // Ошибка компиляции
float f2 = 343434.454563F;
float f3 = 78.45f;
Можно добавить символ 'D'
или 'd'
к double литералу, но это не обязательно:
double d3 = 454545.454545D;
double d4 = 654.321;
double d5 = 54.32d;
Существует так называемая научная нотация записи вещественных чисел:
double d6 = 1.5e14;
Значение этого числа равно 1.5 умножить на 10 в четырнадцатой степени.
Может использоваться строчная или прописная буква - 'e'
, 'E'
. Также степень может содержать знак + или -. Например:
double d7 = 1.5E+14;
double d8 = 1.5e-14;
1.3. Подчеркивание в числовых литералах
Начиная с Java 7, добавлена возможность использовать любое количество символов подчеркивания для разделения групп цифр, что улучшает читабельность.
Подчеркивание может разделять только цифры! Нельзя использовать подчеркивания в следующих местах:
- В начале или конце числа
- Рядом с десятичной точкой в числе с плавающей точкой
- Перед
'F'
,'f'
,'l'
или'L'
суффиксами - Для разделения символов префиксов
int i1 = 12_567; // OK
double d1 = 56.356_234; // OK
short s = 0b000____0100; // OK
int i2 = 220_; // Ошибка компиляции
int i3 = 0_x2F; // Ошибка компиляции
int i4 = 0x_3E; // Ошибка компиляции
float f1 = 6345.56_f; // Ошибка компиляции
float f2 = 3423_.87f; // Ошибка компиляции
2. Boolean литералы
Значение литерала типа boolean может быть определено как true или false:
boolean b1 = true; // Правильно
boolean b2 = 0; // Не правильно
3. Символьные литералы
Для представления символов типа char в Java используется кодировка в Unicode, определяющая полный набор международных символов на всех известных языках мира.
Символьные литералы могут быть представлены в виде символа заключенного в одинарные кавычки:
char c1 = 'n';
char c2 = '#';
Существует также механизм для непосредственного ввода значения символа в восьмеричной или шестнадцатеричной форме. Для ввода значений в восьмеричной форме служит символ обратной косой черты, за которым следует трехзначное число. Например:
char letterO = '\u004F'; // Буква 'O' в шестнадцатеричной форме
char letter_a = '\141'; // Буква 'a' в восьмеричной форме
Есть возможность присвоения числового литерала символьному типу. Числовой литерал должен находиться в диапазоне от 0 до 65535. Например:
char a1 = 0x675; // шестнадцатеричный целочисленный литерал
char a2 = 345; // десятеричный целочисленный литерал
char a3 = (char)80000; // Делается приведение типов, т.к. 80000
//превышает диапазон char типа
Символ обратной косой черты может быть использован для обозначения символов не имеющих точного написания, например символ перевода строки, табуляции, backspace, двойные и одинарные кавычки:
char c1 = '\'';
char c2 = '\n';
4. Строковые литералы
- Для обозначения строковых литералов последовательность символов заключается в двойные кавычки.
- Управляющие символы и восьмеричная или шестнадцатеричная форма записи, определенные для символьных литералов, действуют точно так же и в строковых литералах.
- Строки могут располагаться только на одной строке исходного кода, нельзя открывающую кавычку поставить на одной строке, а закрывающую — на следующей.
String str1 = "MyProgram";
String str2 = "first line\nsecond line";
String str3 = "\"This is in quotes\"";
String str4 = "\u004F letter";//O letter
Презентацию с видео можно скачать на Patreon.
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.