Литералы в java что это
Литералы
Целочисленные литералы
Восьмиричные значения обозначаются ведущим нулем (обычные десятичные числа не могут иметь ведущий нуль). По этой причине с виду нормальное число 09 вызовет ошибку компиляции, так как выйдет за пределы диапазона от 0 до 7 допустимых восьмеричных значений.
Целочисленные литералы создают значения типа int. Если вы создали переменную типа byte или long, а значение литерала находится в диапазоне допустимых значений этих типов, то ошибки не возникает. Не возникает проблем и с типом long, у которого диапазон значений всегда больше, чем у int. Но при этом нужно явно указать, что значение литерала имеет тип long при помощи строчной или прописной буквы L. Например, 899888777666555444333L.
Целочисленное значение можно также присвоить типу char, если оно лежит в допустимых пределах.
Литералы с плавающей точкой
По умолчанию литералам с плавающей точкой присвоен тип double. Если вам нужен тип float, то нужно дописать символ F или f. Кстати, для double можно использовать суффиксы D или d, но в этом нет необходимости.
Символьные литералы
В Java символы представляют собой 16-битовые значения в наборе символов Unicode. Эти значения можно преобразовать в целые значения и применить операции сложения и вычитания. Символьные литералы обрамляются одинарными кавычками. Обычные символы можно ввести стандартным способом, например, ‘c’, ‘a’, ‘@’. Существуют также символы, которые следует экранировать обратным слешем, например, чтобы вывести сам символ одинарной кавычки, нужно использовать вариант ‘\n». Для символа новой строки используется ‘\n’.
Для ввода шестнадцатиричного значения используют обратный слеш, символ u, за которыми следуют четыре шестнадцатиричные цифры, например, ‘\u0061’.
Строковые литералы
Булевы литералы
JDK 7
Раньше Android не поддерживал JDK 7. Сейчас поддержка имеется и стали доступны новые возможности.
В JDK 7 можно использовать целочисленные литералы в двоичной системе. Для этого нужно использовать префикс 0b или 0B:
Кроме того, в JDK 7 можно вставлять символы подчёркивания для облегчения чтения больших числовых литералов:
Символы подчёркивания будут проигнорированы компилятором. Учтите, что можно использовать несколько подряд символов подчёркивания, но нельзя использовать символы подчёркивания в начале или в конце литерала.
Подобная запись удобна при записи вручную программистом номеров телефонов и тому подобных вещей, чтобы визуально лучше анализировать значения. А умная железка сама разберётся, что к чему и не будет удивляться символам подчёркивания в числах.
Литералы
Значения примитивных типов данных в большинстве случаев инициализируются с помощью литералов. Давайте рассмотрим какого типа они бывают в Java.
1. Числовые литералы
1.1. Целочисленные литералы
Типы целочисленных литералов в Java:
Десятичные литералы
Восьмеричные литералы
Восьмеричные литералы начинаются с 0 и используют числа от 0 до 7, например:
Шестнадцатеричные литералы
Двоичные литералы в Java 7
Для определения двоичного литерала, добавьте префикс 0b или 0B к числу. Используются числа 0 и 1. Например:
1.2. Литералы с плавающей точкой
Можно добавить символ ‘D’ или ‘d’ к double литералу, но это не обязательно:
Существует так называемая научная нотация записи вещественных чисел:
Значение этого числа равно 1.5 умножить на 10 в четырнадцатой степени.
1.3. Подчеркивание в числовых литералах
Начиная с Java 7, добавлена возможность использовать любое количество символов подчеркивания для разделения групп цифр, что улучшает читабельность.
Подчеркивание может разделять только цифры! Нельзя использовать подчеркивания в следующих местах:
2. Boolean литералы
Значение литерала типа boolean может быть определено как true или false :
3. Символьные литералы
Для представления символов типа char в Java используется кодировка в Unicode, определяющая полный набор международных символов на всех известных языках мира.
Символьные литералы могут быть представлены в виде символа заключенного в одинарные кавычки:
Существует также механизм для непосредственного ввода значения символа в восьмеричной или шестнадцатеричной форме. Для ввода значений в восьмеричной форме служит символ обратной косой черты, за которым следует трехзначное число. Например:
Есть возможность присвоения числового литерала символьному типу. Числовой литерал должен находиться в диапазоне от 0 до 65535. Например:
Символ обратной косой черты может быть использован для обозначения символов не имеющих точного написания, например символ перевода строки, табуляции, backspace, двойные и одинарные кавычки:
Литералы
— И, наконец, урок от Риши в лекторском стиле: куча бесполезной информации. Все лекторы обожают такое. Но ты хотя бы одним глазком посмотри, и хватит с тебя.
Код | Описание |
---|---|
«Mama mila ramu» | Это литерал. Его тип — String |
115 | Это литерал. Его тип — int |
0.256 | Это литерал. Его тип – double |
‘\u1234’ | Это литерал. Его тип – char |
— На самом деле литералов несколько больше. С помощью литералов можно задать значения любых известных типов:
Литерал | Тип | Описание |
---|---|---|
123676 | int | Целое число |
22223333444433332222L | long | Длинное целое число |
12.323232323f | float | Дробное число |
12.33333333333333333d | double | Длинное дробное число |
«Mama» «» «Mama\nMila\nRamu\n123» | String | Строка |
‘\u3232’ ‘T’ ‘5’ | char | Символ |
true, false | boolean | Логический тип |
null | Object | Ссылка на объект |
— Т.е. код – это методы, классы, переменные,…, а литералы – это конкретные значения переменных, записанные прямо в коде. Так, я правильно понял?
— Отлично. Наконец-то эта Java начинает складываться в одну картину.
BestProg
Литералы. Идентификаторы. Ключевые слова. Комментарии
Содержание
Поиск на других Web-ресурсах:
1. Что такое литералы?
Литералы представляют собою фиксированные значения (константы), которые имеют определенный тип. Более подробно о примитивных типах данных можно прочитать здесь.
Тип литерала определяется его значением. Чаще всего литералы встречаются в выражениях, параметрах функций (методов).
Примеры литералов:
⇑
2. Каким образом определяются литералы целочисленных типов?
Пример целочисленных литералов типа int :
Пример целочисленных литералов типа long :
⇑
Если забрать комментарии из строки
то компилятор выдаст сообщение об ошибке:
⇑
4. Как записать целочисленный литерал в восьмеричной или шестнадцатеричной системе исчисления?
Для записи литерала в восьмеричной системе исчисления перед ним ставится символ ‘ 0 ‘ (ноль).
Для записи литерала в шестнадцатеричной системе исчисления нужно перед значением литерала поставить символы ‘ 0x ‘ или ‘ 0X ‘.
Пример использования литералов в восьмеричной и шестнадцатеричной системах исчисления.
Если попробовать написать:
то компилятор выдаст следующее сообщение об ошибке:
Это означает, что цифра ‘9’ не входит в множество цифр восьмеричной системы исчисления.
⇑
Литералы с плавающей точкой могут быть представлены в стандартной или экспоненциальной форме.
Примеры литералов с плавающей запятой.
⇑
6. Каким образом представляются литералы с плавающей точкой в экспоненциальной форме?
В экспоненциальной форме к стандартной форме литерала добавляется символ ‘ e ‘ или ‘ E ‘. После символа ‘ e ‘ или ‘ E ‘ следует число, которое есть степенью числа 10. На это число нужно помножить данное число.
Пример представления чисел с плавающей запятой в экспоненциальной форме:
⇑
7. Каким образом представляются литералы с плавающей точкой в шестнадцатеричной системе исчисления?
Язык Java разрешает представлять литералы с плавающей точкой в шестнадцатеричной системе исчисления. В этом случае литерал состоит из таких частей:
Пример. Представление литералов в шестнадцатеричной системе исчисления.
⇑
8. Как в Java представляются логические литералы?
Пример.
⇑
9. Как в Java записываются символьные литералы?
Символьные литералы – это символы, которые поддерживают набор символов Юникод ( Unicode ). Один символ занимает в памяти 16 бит (2 байта).
Есть множество символов, которые по разным причинам нельзя представить непосредственно. В этом случае используются управляющие последовательности.
Примеры символьных литералов.
⇑
10. Что такое управляющие последовательности символов?
Управляющие последовательности позволяют отображать символы, которые:
В Java существуют следующие управляющие последовательности символов:
Пример использования символьных литералов и управляющих последовательностей в программе.
⇑
11. Как отображаются строковые литералы?
Строковые литералы берутся в двойные кавычки.
Примеры строковых литералов.
⇑
Идентификаторы используются для именования переменных, методов, классов. В языке Java идентификатор состоит из любой последовательности:
Идентификатор обязательно должен начинаться с буквы.
Язык Java распознает строчные и прописные буквы как разные. Это означает, что идентификатор с именем MAX отличается от идентификатора с именем Max – это два разных имени.
Примеры имен идентификаторов:
⇑
13. Что такое ключевые слова?
В языке Java определены следующие ключевые слова:
⇑
Комментарии разрешают сопровождать программный код объяснениями. Комментарии облегчают чтение деталей программного кода как разработчиками, так и сторонними программистами.
В языке программирования Java есть три вида комментариев:
Java Core для самых маленьких. Часть 3. Переменные
В предыдущей статье мы говорили о типах данных, а теперь поговорим о вытекающей из этого теме, о переменных.
На скриншоте выше продемонстрирован пример создания переменных.
Давайте сразу научимся давать имена переменным правильно. Существует документ Java Code Conventions. В нем указаны правила к написанию кода на Java. Нужно это для того, что бы Java код в разных проектах был написан в едином стиле. Таким образом, новоприбывший на проект программист не будет отвлекаться на новый стиль кода, ведь он будет оформлен так же, как и на других проектах. Эти правила работают и при нейминге переменных.
Итак, переменные принято называть в lowerCamelCase стиле. Сейчас покажу как хорошо, а как плохо:
Вот было значение 1998, а на следующей строке стало 2000. А вот с константой так не получится. Константа гарантирует, что ее значение не изменится на протяжении всего времени выполнения программы. Как создать константу? Очень просто:
Нужно всего лишь дописать ключевое слово final перед типом данных переменной. Для простоты понимания, мы как бы «финализируем» значение переменной и говорим, что это значение конечное.
Обратим внимание на имя константы. Когда мы даем имя константе, то должны делать это в стиле SCREAMING_SNAKE_CASE. Давайте исправим мой код:
В целом, вас никогда не погладят по головке за правильный нейминг в коде. Подразумевается, что это нечто естественное при написании кода. Как правила этикета у людей. А вот если вы будете называть ваши переменные и константы абы как, получите незамедлительного леща.
Инициализация переменных
У всех переменных из моих примеров уже было присвоено начальное значение. Процесс присвоения начального значения называется инициализацией переменной. И не обязательно инициализировать переменную во время ее объявления. Java позволяет сделать это и позже.
Во-первых, можно объявлять переменные через запятую (если они одинакового типа):
При этом, смотрите, мы можем некоторые из них инициализировать прямо во время объявления. А теперь инициализируем оставшиеся:
Для инициализации переменных типа char я использовал цепочку присваиваний. Да, и так тоже можно. Хотя используется очень редко.
Если мы попытаемся провести какую-то операция с переменной, у которой нет значения, то получим ошибку.
Оператор присваивания
Литералы
В Java постоянные значения задаются литеральным представлением. Простым языком, при помощи определенных символов мы можем указывать тип данных. Вот например, при работе с целочисленными литералами нам не нужны никакие литералы. Мы просто пишем число 1998; и Java понимает, что это целочисленное значение.
Так, что еще за символы подчеркивания в значении переменной? Это всего-навсего декор. С JDK 7 допустимо указывать знаки подчеркивания, для разбиения больших чисел на разряды, для удобства чтения.
В вышеописанных примерах были литералы для целочисленных десятичных значений. А еще мы можем присвоить целому числу литерал в виде восьмеричного значения. Для этого вам нужно добавить в самом начале значения 0. Но в таком случае, логично, что это значение не сможет содержать цифры 8 и 9, поскольку они выходят за пределы восьмеричной системы счисления.
Мало того, еще мы можем использовать литерал шестнадцатеричных значений. Такие значения обозначают с начальным 0x или 0X, а цифры в пределах от 10 до 15 заменяются символами ABCDEF английского алфавита.
С JDK 7 есть возможность указывать целочисленные литералы в двоичном виде. Для этого вначале значения нужно указать 0b или 0B и соответственно в значениях можно использовать только цифры 0 и 1. В реальности, вам навряд ли понадобятся литералы шестнадцатеричных, восьмеричного или двоичных значений. Однако, знать о них нужно.
Литералы дробных чисел
Но существует и экспоненциальная форма записи этих чисел в виде 2.34e12;
Где число после символа ‘e’ обозначает степень 10-ти. Простыми словами, мы записали 2 целых и 34 сотых умноженное на 10 в 12 степени.
Как и в случае с целочисленными значениями, литералы с плавающей точкой поддерживают нижнее подчеркивание начиная с JDK 7.
Логические литералы
Символьные литералы
Для символьных литералов, которые присутствуют на вашей клавиатуре вы можете использовать одинарные кавычки, обернув ими необходимый вам символ введенный с клавиатуры.
Я не просто так обратил ваше внимание на символы с клавиатуры. Ведь существуют и такие символы, которых на клавиатуре нет, да и на символы они не похожи. Сейчас разберемся.
А вот если символ нельзя ввести непосредственно с клавиатуры, то для ввода таких символов используют ряд управляющих последовательностей. Например, символ переноса строки ‘\n’. Существуют последовательности, которые существуют для ввода значений в восьмеричной и шестнадцатеричной форме. Например, мы захотели ввести букву tu катаканы смайлик: ツ. Берем и пишем:
В данной таблице вы можете посмотреть наиболее используемые последовательности символов:
Когда-то давно, я писал статью про экранирование символом. Настоятельно рекомендую прочитать, как дополнительный материал. Узнаете много интересного.
Строковый литерал
Можно заключить последовательность символов в двойные кавычки и получить так называемую строку.
Динамическая инициализация
Пару слов о таком термине как динамическая инициализация. Ничего сложного, только звучит страшно.
Переменную можно инициализировать другой переменной. Также, допускается инициализация переменной результатом какого-то выражения.
Главное, чтобы тип данных выражения / инициализирующей переменной совпадал с типом данных целевой переменной.
Преобразование и приведение типов
Знаю, вы уже подустали, сделали массу перерывов и подходов. Обещаю, это последняя тема в этой статье.
Часто программисты сталкиваются с ситуацией, когда переменной одного типа приходится присваивать значение другого типа. Если оба типа данных совместимы, их преобразование будет выполнено автоматически. Для автоматического преобразования должно выполняться 2 условия:
Чтобы выполнить преобразование двух несовместимых типов данных, нужно воспользоваться приведением типов. Это явное преобразование одного типа в другой. И выглядит это вот так:
Нужно понимать, что преобразование вы проводите на свой страх и риск. Вы должны быть уверенным в том, что преобразуемое значение помещается в диапазон целевого типа. В противном случае вы получите некорректные данные.
Подводим итоги
В этой статье мы поговорили о многих важных вещах. Узнали, как создавать переменные и константы в Java, и чем они отличаются. Узнали о способах инициализации переменных. Разобрались с тем, что такое литералы и какие они бывают. А так же выполнили преобразование и приведение типов данных.
Скажем спасибо Егору за предоставленный материал.