Что такое литералы в java
Перейти к содержимому

Что такое литералы в java

  • автор:

Литералы

Целочисленные литералы — самый используемый тип в программах. Любое целочисленное значение является числовым литералом, т.е. значения 1, 5, 9, 42 и т.п. являются числовыми литералами с основанием 10. Также можно использовать восьмеричные и шестнадцатиричные значения.

Восьмиричные значения обозначаются ведущим нулем (обычные десятичные числа не могут иметь ведущий нуль). По этой причине с виду нормальное число 09 вызовет ошибку компиляции, так как выйдет за пределы диапазона от 0 до 7 допустимых восьмеричных значений.

Шестнадцатиричные значения обозначают ведущим нулём и символом x (икс). Можно использовать маленький (0x) и большой (0X) символ в числах. Диапазон допустимых цифр — от 0 до 15, где цифры от 10 до 15 заменяются буквами от A до F (можно также использовать символы от a до f в нижнем регистре).

Целочисленные литералы создают значения типа int. Если вы создали переменную типа byte или long, а значение литерала находится в диапазоне допустимых значений этих типов, то ошибки не возникает. Не возникает проблем и с типом long, у которого диапазон значений всегда больше, чем у int. Но при этом нужно явно указать, что значение литерала имеет тип long при помощи строчной или прописной буквы L. Например, 899888777666555444333L.

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

Литералы с плавающей точкой

Числа с плавающей точкой представляют десятичные значения с дробной частью. Число можно записать в двух вариантах — в стандартной и научной форме записи. Стандартная форма — целое число, за которым следуют десятичная точка и дробная часть (например, 3.14). Научная форма записи использует стандартную форму записи числа с плавающей точкой, к которой добавлен суффикс, указывающий степенную функцию числа 10, на которую нужно умножить данное число. Для указания экспоненциальной функции используют символ E или e, за которыми следует десятичное число (положительное или отрицательное). Например, 5.07E12.

По умолчанию литералам с плавающей точкой присвоен тип double. Если вам нужен тип float, то нужно дописать символ F или f. Кстати, для double можно использовать суффиксы D или d, но в этом нет необходимости.

Также возможна запись шестнадцатиричных литерал с плавающей точкой, но на практике я не встречал подобную запись. В этом случае вместо E используется P (или p) — 0x14.3p2.

Символьные литералы

В Java символы представляют собой 16-битовые значения в наборе символов Unicode. Эти значения можно преобразовать в целые значения и применить операции сложения и вычитания. Символьные литералы обрамляются одинарными кавычками. Обычные символы можно ввести стандартным способом, например, ‘c’, ‘a’, ‘@’. Существуют также символы, которые следует экранировать обратным слешем, например, чтобы вывести сам символ одинарной кавычки, нужно использовать вариант ‘\n». Для символа новой строки используется ‘\n’.

Можно вывести нужный символ, используя его восьмеричное или шестнадцатиричное значение. При восьмеричной форме используют обратный слеш, за которым следует трёхзначный номер — ‘\143’.

Для ввода шестнадцатиричного значения используют обратный слеш, символ u, за которыми следуют четыре шестнадцатиричные цифры, например, ‘\u0061’.

Строковые литералы

Строковые литералы — это набор символов в двойных кавычках, например, «Кот — это муж кошки». Внутри строковых литералов также можно использовать управляющие символы, например, для перевода на новую строку — «Кот\nКошка\nКотёнок».

Булевы литералы

Есть только два булевых литерала — true и false. В отличие от некоторых языков программирования, эти значения не преобразуются в числовые значения. При этом литерал true не равен 1, а литерал false не равен 0.

JDK 7

Раньше Android не поддерживал JDK 7. Сейчас поддержка имеется и стали доступны новые возможности.

В JDK 7 можно использовать целочисленные литералы в двоичной системе. Для этого нужно использовать префикс 0b или 0B:

 int x = 0b1010; 

Кроме того, в JDK 7 можно вставлять символы подчёркивания для облегчения чтения больших числовых литералов:

 int x = 123_456_789; double num = 8_343_398.0; 

Символы подчёркивания будут проигнорированы компилятором. Учтите, что можно использовать несколько подряд символов подчёркивания, но нельзя использовать символы подчёркивания в начале или в конце литерала.

Подобная запись удобна при записи вручную программистом номеров телефонов и тому подобных вещей, чтобы визуально лучше анализировать значения. А умная железка сама разберётся, что к чему и не будет удивляться символам подчёркивания в числах.

Литералы в Java

Литералы — это константы, которые записаны по правилам языка Java. Рассмотрим сначала целочисленные литералы. Приведем примеры целочисленных литералов.

111 — десятичное (десятеричное) число
056 — число 46 в восьмеричной форме
0 х АВ — 171 в шестнадцатеричной форме

В языке Java возможны три системы счисления: десятичная (десятеричная), восьмеричная и шестнадцатеричная. Числа в десятичной форме — это числа с основанием 10, числа в восьмеричной форме — это числа с основанием 8, числа в шестнадцатеричной форме — числа с основанием 16. Записи чисел в восьмеричной форме начинаются с 0, далее каждая цифра числа должна быть от 0 до 7. Преобразуются они в десятичные числа так: рассмотрим, например, число 056 в восьмеричной форме. В десятичной форме это число записывается так.

Запись числа в шестнадцатеричной форме начинается с символов 0х, а последующие цифры должны быть от 0 до 15. Поскольку, например, число — это 2 цифры, а нужно записать его одной цифрой, то числа от 10 до 15 записываются буквами от А до f. Рассмотрим правила перехода шестнадцатеричных чисел в десятичные. Возьмем, например, число 0 х АВ. В десятичной форме это число будет записываться так.

10 х 16 + 11 = 171.

Записи числа с типом данных long (“длинные целые числа” — об этом далее) обычно имеют на конце символ 1 (чтобы отличить их от целочисленных констант типа int — простых чисел).

Рассмотрим теперь литералы для чисел с плавающей точкой.

Эти литералы, как и целочисленные, могут иметь знаки “+” и (т.е. быть положительными или отрицательными), иметь в записи точку, которая разделяет целую и дробную часть, а также букву е и следом за ней — степень, в которую необходимо возвести число (если степень положительная, знак “+” можно не указывать).

Рассмотрим теперь, как выглядят символьные литералы.

Символьные литералы должны заключаться в одинарные кавычки. Среди символьных литералов есть так называемые еsсаре-последовательности, которые позволяют произвести какую-либо операцию, например, перевести курсор на новую строку или вывести обратную косую черту.
Они представляют собой набор последовательностей вида \uaaaaa, где вместо а могут быть какие-либо символы или числа. Однако есть специальные символы, которые соответствуют еsсаре-последовательностям. Эти специальные символы представлены в табл. 2.1.

Таблица 2.1. Специальные символы, соответствующие еsсаре-последовательностям

Специальные символы Действие
Предупреждение (звонок)
\b Возврат курсора на шаг
\f Перевод страницы
\n Следующая строка (перевод на новую строку)
\r Возврат каретки
\t Табуляция
\\ Отображение обратной косой черты
\’ Отображение одинарной кавычки
\” Отображение двойной кавычки
\ааа Символ восьмеричного значения (не более 377 — т.е. 255 в десятичной системе)­

Рассмотрим теперь строковые литералы.
Они принадлежат объектам типа String и располагаются между двумя кавычками, например:

К булевым литералам относятся такие значения, как true (истина) и false (ложь). Они служат для представления логического (или булева) типа данных — boolean.
Наконец последний тип литералов — ссылочный литерал — null. Его можно использовать для присвоения значений объекту, т.е. сделать так, чтобы объект не был инициализирован.

Вам також може сподобатися

Новые фишки в Android N

Уроки по android разработке на Java 0 624

Новая операционная система Android 7.0 Nougat демонстрирует функции и доработки, улучшающие пользовательский опыт Android. Некоторые изменения, такие

Урок 26. Как вызвать другое Activity из приложения через Action и Intent Filter | Уроки Android Studio

Уроки по android разработке на Java 0 1 360
В этом уроке узнаем, что такое неявный вызов активити, и будем вызывать другое Activity

LibGDX: установка и настройка проекта в Android Studio | Делаем android игры

Разработка игр для android 4 2 418
Продолжаем серию уроков о том, как сделать игру Flappy Bird для android. На этом

Встреча с разработчиками на канале Start Android: задавайте вопросы!

Уроки по android разработке на Java 10 122
Всем привет, в ближайшие выходные у нас в гостях на канале Start Android опытные

Лекция 8 по архитектуре Android. Data Binding + MVVM

Архитектура андроид-приложений 0 1 201

Это заключительная лекция курса по Архитектуре андроид-приложений, в которой мы подведем итоги и определим

Литералы. Идентификаторы. Ключевые слова. Комментарии

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

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

Примеры литералов:

5 '5' 0x8f 5.663 'x' "This is a string" true false

2. Каким образом определяются литералы целочисленных типов?

Тип литерала компилятор распознает по его значению. По умолчанию целочисленные литералы имеют тип int . В языке Java целочисленный литерал типа int имеет разрядность 32 бита.

Пример целочисленных литералов типа int :

25 -1000 073 0x25 0XF5A 0xabcd

Для того, чтобы целочисленный литерал имел тип long , нужно дополнить значения литерала символами ‘ l ‘ или ‘ L ‘.

Пример целочисленных литералов типа long :

25l 20000000000L 0L

3. Каким образом происходит присваивание литерала переменным типов byte и short ?

Литерал типа int может присваиваться переменным типов byte , short если значение литерала находится в границах допустимых значений данных типов.

Пример. Присваивание литералов переменным типов byte и short .

byte b; short sh; b = -20; // работает, число -20 входит в диапазон значений типа byte sh=1000; // работает // ошибка, число 1000 выходит за пределы диапазона типа byte // b = 1000; // так же ошибка! // sh = 50000;

Если забрать комментарии из строки

b = 1000;

то компилятор выдаст сообщение об ошибке:

Unresolved compilation problem: Type mismatch: cannot convert from int to byte

4. Как записать целочисленный литерал в восьмеричной или шестнадцатеричной системе исчисления?

Для записи литерала в восьмеричной системе исчисления перед ним ставится символ ‘ 0 ‘ (ноль).

Для записи литерала в шестнадцатеричной системе исчисления нужно перед значением литерала поставить символы ‘ 0x ‘ или ‘ 0X ‘.

Пример использования литералов в восьмеричной и шестнадцатеричной системах исчисления.

byte b; short sh; int d; long l; // восьмеричная система исчисления b = -027; // -23 в десятичной системе исчисления sh = 0233; // 155 в десятичной системе исчисления d = 03546; // 1894 l = 032451l; // 13609 // шестнадцатеричная система исчисления b = 0x0f; // 15 в десятичной системе исчисления sh = 0XAF; // 175 d = 0xabcd; // 43981 l = 0XaF90FCDEDl; // 47128235501

Если попробовать написать:

byte b; b = 09;

то компилятор выдаст следующее сообщение об ошибке:

The literal 09 of type int is out of range Type mismatch: cannot convert from int to byte

Это означает, что цифра ‘9’ не входит в множество цифр восьмеричной системы исчисления.

5. Какие особенности представления литералов с плавающей точкой в языке Java ?

Литералы с плавающей точкой могут быть представлены в стандартной или экспоненциальной форме.

По умолчанию, литералы с плавающей точкой имеют тип double . Если литералу принудительно необходимо указать тип double , то после его значения нужно добавить символ ‘ d ‘ или ‘ D ‘.

Если литералу нужно задать тип float , тогда его значение дополняется символом ‘ f ‘ или ‘ F ‘.

Примеры литералов с плавающей запятой.

2.66 -3.390 0.3003f 239.39F 1E6 -2.3e-4 -3.3E-2f 0.3d -0.3D

6. Каким образом представляются литералы с плавающей точкой в экспоненциальной форме?

В экспоненциальной форме к стандартной форме литерала добавляется символ ‘ e ‘ или ‘ E ‘. После символа ‘ e ‘ или ‘ E ‘ следует число, которое есть степенью числа 10. На это число нужно помножить данное число.

Пример представления чисел с плавающей запятой в экспоненциальной форме:

double d; d = 1.0e6; // d = 1000000.0 d = 1.1E-2; // d = 0.011 d = -3.9e-3; // d = -0.0039

7. Каким образом представляются литералы с плавающей точкой в шестнадцатеричной системе исчисления?

Язык Java разрешает представлять литералы с плавающей точкой в шестнадцатеричной системе исчисления. В этом случае литерал состоит из таких частей:

  • знак ‘ ‘, что означает, что число отрицательное;
  • символ ‘ 0x ‘ или ‘ 0X ‘ (означает, что литерал записанный в шестнадцатеричной системе исчисления);
  • непосредственно число в стандартной форме записи (например 2.3);
  • символ ‘ p ‘ или ‘ P ‘;
  • целое число, которое есть степенью числа 2 на которое множится данное число.

Пример. Представление литералов в шестнадцатеричной системе исчисления.

double d; d = 0XF.1P3; // d = 120.5 d = 0x1p1; // d = 2.0 d = -0x1p3; // d = -8.0

8. Как в Java представляются логические литералы?

В языке Java логические литералы могут быть двух значений: true или false . Логические литералы могут быть присвоены переменным типа boolean .

Пример.

boolean b; b = true; b = true == false; // b = false

9. Как в Java записываются символьные литералы?

Символьные литералы – это символы, которые поддерживают набор символов Юникод ( Unicode ). Один символ занимает в памяти 16 бит (2 байта).

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

Примеры символьных литералов.

'g' '3' ';' '\145' '\u00af'

10. Что такое управляющие последовательности символов?

Управляющие последовательности позволяют отображать символы, которые:

  • невозможно ввести с клавиатуры (например, символ новой строки);
  • нужно представить в восьмеричной форме;
  • нужно представить в шестнадцатеричной форме.

В Java существуют следующие управляющие последовательности символов:

\uxxxx - шестнадцатеричный символ (xxxx) \ddd - восьмеричный символ (ddd) \' - одинарная кавычка \" - двойная кавычка \\ - обратная косая черта \b - возврат на одну позицию \f - подача страницы \n - новая строка \r - возврат каретки \t - табуляция

Пример использования символьных литералов и управляющих последовательностей в программе.

char c; c = 'g'; c = '\n'; // новая строка c = '\"'; // двойная кавычка c = '\u00af'; // c = '?' c = '\145'; // c = 'e' c++; // c = 'f'

11. Как отображаются строковые литералы?

Строковые литералы берутся в двойные кавычки.

Примеры строковых литералов.

"Это строка символов" "Две\nстроки" "Тема занятия: \'Литералы\'"

12. Что такое идентификаторы в языке программирования Java ?

Идентификаторы используются для именования переменных, методов, классов. В языке Java идентификатор состоит из любой последовательности:

  • строчных и прописных букв латинского алфавита;
  • цифр от ‘ 0 ‘ до ‘ 9 ‘;
  • символа подчеркивания ‘_‘;
  • символа денежной единицы (в особых случаях).

Идентификатор обязательно должен начинаться с буквы.

Язык Java распознает строчные и прописные буквы как разные. Это означает, что идентификатор с именем MAX отличается от идентификатора с именем Max – это два разных имени.

Примеры имен идентификаторов:

x weight a1 array1 MyClass Max a1b2c3

13. Что такое ключевые слова?

Ключевые слова – это зарезервированные языком Java слова. Ключевыми словами могут быть операторы, инструкции, утверждения, которые составляют основу языка Java . Ключевые слова нельзя использовать в качестве имен идентификаторов, переменных, классов, методов и т.п.

В языке Java определены следующие ключевые слова:

abstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile

14. Какие виды комментариев существуют в языке Java ?

Комментарии разрешают сопровождать программный код объяснениями. Комментарии облегчают чтение деталей программного кода как разработчиками, так и сторонними программистами.

В языке программирования Java есть три вида комментариев:

  • однострочные комментарии, начинаются с символов ‘ // ‘;
  • многострочные комментарии, начинаются из символов ‘ /* ‘ и заканчиваются символами ‘ */ ‘;
  • документирующие комментарии, начинаются из символов ‘ /** ‘ и заканчиваются символами ‘ */ ‘.

Примеры комментариев:

. // однострочный комментарий . /* многострочный комментарий */ . /** документирующий комментарий */ . 

Связанные темы

  • Типы данных Java
  • Переменные. Объявление переменных. Инициализация переменных
  • Преобразование и приведение типов. Автоматическое продвижение типов в Java

Какие существуют литералы?

Литерал – последовательность символов, обозначающая значение примитивного типа (или строки).

�� Целочисленные (Integer). Возможные форматы: 2019 , 1__000_000 (с Java 7), 10048L (можно l, но будет путаться с 1), 0xfd12aa , 0b1011101 , 07654321 .

�� С плавающей точкой (floating-point). Возможные форматы: 123.4 , 56.7e8 , .07 , 42F , 1.4D (избыточно, по умолчанию и так double).

�� Символы и строки. Символ (char) – в одинарных кавычках: ‘R’ . Спецсимволы пишутся с бэкслешем: ‘\n’ . Любой символ можно представлять в виде escape-последовательности: ‘\u00F1’ . Строковый литерал – последовательность символов в двойных кавычках: «Blabla» . Для символов строки действуют те же правила.

�� Логические (boolean). true и false .

�� Специальный литерал null .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *