JavaRush /Курсы /Java Syntax Pro /Литералы в Java

Литералы в Java

Java Syntax Pro
9 уровень , 0 лекция
Открыта

1. Литералы целых чисел

А теперь новая интересная тема — литералы. Данные, вписанные прямо в код программы, называют литералами. В данном случае речь идет не о любых данных, а о значениях примитивных типов и типе String.

Например, у вас есть код:

Код Литералы
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

Литералы в этом коде — это число 5, число 10 и строка Sum=.

В языке Java тип есть у всего, включая литералы. Все целочисленные литералы (целые числа) в коде имеют тип int. Тип int является стандартным типом целых чисел в Java.

При этом, если вы в своем коде решите присвоить целочисленный литерал переменной типа byte или short, проблем не возникнет. Надо лишь чтобы значение литерала лежало внутри диапазона доступных значений типа переменной.

Компилятор в Java достаточно умный, чтобы понять, что переменной типа byte можно присвоить целочисленный литерал 100, и проблем не возникнет.

Примеры:

Код Описание
int a = 300;
Скомпилируется отлично.
byte a = 100; 
Скомпилируется отлично.
byte a = 300; 
Будет ошибка компиляции: максимальное значение типа byte равно 127.

В коде также можно писать литералы типа long. Для этого в конце целого числа нужно написать латинскую букву L или l.

Примеры:

Код Описание
long a = 3000000000L; 
Скомпилируется отлично.
long a = 3000000000; 
Ошибка компиляции: 3 миллиарда слишком большое число для литерала типа int.
int a = 3000000000L; 
Ошибка компиляции: у литерала тип long, а у переменной тип int. К тому же, 3 миллиарда больше, чем максимальное число типа int.

Обратили внимание, как сложно читать большие числа в 10 и более знаков? Не сразу поймешь, 3 миллиарда в коде или 30? Чтобы упростить читаемость кода (а это важно!), в Java разрешили вставлять в числовые литералы символы подчеркивания (на значение числа они не влияют).

Пример выше можно переписать с использованием символов подчеркивания, и он станет немного понятнее:

Код Описание
long a = 3_000_000_000L; 
Скомпилируется отлично.
long a = 3_000_000_000; 
Ошибка компиляции: 3 миллиарда слишком большое число для литерала типа int.
int a = 3_000_000_000L; 
Ошибка компиляции: у литерала тип long, а у переменной тип int. К тому же 3, миллиарда больше, чем максимальное число типа int.

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



2. Литералы вещественных чисел

В коде можно задавать не только целочисленные, но и литералы с плавающей точкой (вещественные числа).

Собственно, правило очень простое: если в коде есть число и в его записи есть точка, это число — литерал с плавающей точкой. И не просто литерал, а литерал с типом double.

Можно создать и литерал типа float, но для этого к числу в конце нужно приписать букву F (или f).

Примеры:

Код Описание
double a = 100.0; 
Скомпилируется отлично.
double a = 100.;
Скомпилируется отлично.
double a = .0;
Скомпилируется отлично.
float a = 100.0f; 
Скомпилируется отлично.
float a = 100.0; 
Будет ошибка компиляции: переменная типа float, литерал типа double.

Кстати, можно явно превратить целочисленный литерал в литерал типа float или double, просто приписав к нему суффикс F (для float) или D (для double). Примеры:

Код Описание
double a = 100D; 
Скомпилируется отлично.
float a = 100F; 
Скомпилируется отлично.
int a = 300D; 
Будет ошибка компиляции: переменная типа int, литерал типа double.

У литералов с плавающей точкой есть «научная форма записи»: кроме знаковой части числа можно еще указать и степень десятки этого числа. Пример:

Литерал Математическая запись Итоговое значение
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


3. Литералы строк

В коде также можно задавать и целые строки текста. Чтобы компилятор считал строку именно данными (строкой текста), а не частью кода, вся строка с двух сторон обрамляется двойными кавычками.

Если в одной строке кода много двойных кавычек, они разбиваются на пары. Первая двойная кавычка обозначает начало литерала, следующая за ней — конец литерала. Следующая за ней — опять начало нового литерала, следующая за ней — конец второго литерала. И т.д.

Каждый такой литерал имеет тип String.

Примеры

Код Пояснение
"+" + "+" + "+" + "+" + "+"
В строке 5 литералов, каждый из которых состоит из одного символа +
""
Литерал пустая строка. Строка, в которой нет символов.
"2+3" + "-5"
Тут два литерала. Результатом будет строка 2+3-5, но не число
"return" + ";"
Тут тоже два литерала. Оператора return тут нет.

Если строковый литерал слишком длинный, его можно разбить на несколько строк и склеить «оператором плюс»:

Код Пояснение
String s = "Буря мглою небо кроет "
         + "Вихри снежные крутя "
         + "То как зверь она завоет "
         + "То заплачет как дитя";
Если вывести эту строку на экран, весь текст выведется в одну строку!


4. Литералы символов

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

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

Примеры:

Код Пояснение
'A'
Литерал типа char. Содержит латинскую букву A.
'@' 
Литерал типа char. Содержит символ @
'' 
Литерал типа char. Содержит иероглиф японского алфавита. Да, так тоже можно.
'\u1f3a'
Литерал типа char. Содержит символ кодировки Unicode, заданный его номером.

В последнем примере задается символ из кодировки Unicode с помощью специальной записи: сначала идет префикс \u, затем 4 шестнадцатеричных символа. Детальнее об этом в ближайших лекциях.


Комментарии (279)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Grigoryvvv Уровень 10 Expert
28 октября 2025
28.10.2025 / 10 уровень
Evgenii Petrov Уровень 10
26 октября 2025
На последней задаче - 28742.... А было 35 тысяч и больше!
MrClayman Уровень 20
27 июля 2025
Коллеги, день добрый! Можно попросить лайк для ачивки?
Vadim Уровень 11
27 августа 2025
а зачем она нужна тебе?
MrClayman Уровень 20
10 сентября 2025
Ищу стажёрство)
Anonymous #3585174 Уровень 33
16 июня 2025
like
LisoEdoEd Уровень 19 Student
25 марта 2025
Приятно видеть как с каждой задачей отсеивается несколько сотен людей, а ты идешь дальше. Сколько интересно людей решили последнюю задачу на 20 уровне
Сергей Сак Уровень 16
7 апреля 2025
Там после решения задачи высвечивается количество людей, решивших задачу. Вот статистика на последнюю задачу этой лекции:
Artem Уровень 14
29 мая 2025
а где это написано? у меня после решения показывается только количество моих попыток, среднее кол-во попыток и сколько материи дается
Сергей Сак Уровень 16
29 мая 2025
В Intellij IDEA и написано, в плагине джава раш, сразу после решения задачи
Romaha Уровень 14
10 июня 2025
Приятно видеть как ребята отсеиваются? Странный подход у вас. Радуйтесь своим победам, а не чужим поражениям 😑
LisoEdoEd Уровень 19 Student
22 июня 2025
Ну да, из-за этого чувствую, что я иду дальше "ровно", а более слабые отсеиваются. Мне параллельно до них, радуюсь за себя.
Georgy Dmitriev Уровень 19
3 июля 2025
чел это даже не Спринг и бизнес логика чтоб ты так горделиво поднимал нос
LisoEdoEd Уровень 19 Student
16 июля 2025
С чего ты взял, что я горделиво поднимаю нос
Gris Hiver Уровень 1
5 августа 2025
Ты сам как? Не отсеился?
LisoEdoEd Уровень 19 Student
8 августа 2025
Ползу потихоньку
17 сентября 2025
Romaha Согласен с вами!
hidden #3358678 Уровень 13
24 марта 2025
Мне кажется, что прикол этого курса, что они напрягают, чтобы ты почувствовал себя тупым, потом ты узнал и вернулся, чтобы прорешать и получил приятный бонус в виде гормона счастья, дофаминчика
Юрий Уровень 20
12 февраля 2025
А ты... тоже не бреешь переносицу?
Денис Кокшаров Уровень 32
18 января 2025
КээСеры на месте?
ozmeow Уровень 28
19 января 2025
в чем прикол?) добавь в стиме поиграем как нибудь(https://steamcommunity.com/profiles/76561198330304047/)
Anonymous #3520644 Уровень 14
20 января 2025
абанина
Aleksei Уровень 19
21 декабря 2024
Лекция явно не для 10 уровня. Ее нужно в самом начале курса ставить. Было много непонятных моментов в коде из предыдущих лекций, которые разъясняет эта лекция.
Andrew Уровень 10 Expert
26 декабря 2024
Полностью поддерживаю, можно прям после изучения типов переменных ставить.
Кирилл Уровень 1
18 декабря 2024
Анжелику кто ни будь проткнет все таки? ток это интересно я комикс для взрослых надеюсь купил
20 января 2025
🤣