Литералы
Значения примитивных типов данных в большинстве случаев инициализируются с помощью литералов. Давайте рассмотрим какого типа они бывают в 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 .
7. Java – Примитивные и ссылочные типы данных, литералы
Переменные не что иное как зарезервированные места памяти для хранения значений. Это означает, что при создании переменной Вы резервируете некоторое пространство в памяти.
Основываясь на типе данных, который присвоен переменной, операционная система выделяет память и решает, что может быть сохранено в зарезервированную памяти. Поэтому, назначая различные типы данных для переменных, в Java можно хранить целые числа, десятичные дроби или символов в этих переменных.
Существует два типа данных в Java:
- простые или примитивные типы данных;
- ссылочные типы данных (ссылка/объект).
Примитивные типы данных
Существует 8 типов данных, поддерживаемых Java. Основные типы данных предопределены языком и названы по ключевому слову. Теперь давайте посмотрим в деталях эти восемь базовых типов данных существующих в языке программирования Java.
Тип byte
- Тип данных byte является 8-разрядным знаковым целым числом.
- Минимальная величина равна -128 (-2 7 ).
- Максимальное значение равно 127 (включительно) (2 7 -1).
- По умолчанию – 0.
- byte предназначен для экономии места в больших массивах, главным образом вместо целых чисел, поскольку byte в четыре раза меньше, чем int.
- Пример:
byte a = 100; byte b = -50;
Тип short
- Тип данных short является 16-разрядным знаковым целым числом.
- Минимальное значение равно -32768 (-2 15 ).
- Максимальная величина равна 32 767 (включительно) (2 15 -1).
- Тип short в Java может также использоваться для экономии памяти как byte. Размер short в 2 раза меньше, чем int.
- По умолчанию – 0.
- Пример:
short s = 10000; short r = -20000;
Тип int
- В языке Java тип данных int является 32-разрядным знаковым целым числом.
- Минимальный размер int – 2 147 483 648 (-2 31 ).
- Максимальная величина равна 2,147,483,647 (включительно)(2 31 -1).
- Тип int обычно используется для целых значений. Если нет озабоченности по поводу памяти.
- По умолчанию равно 0.
- Пример:
int a = 100000; int b =-200000;
Тип long
- Тип данных long является 64-разрядным знаковым целым числом.
- Минимальное значение равно – 9,223,372,036,854,775,808 (-2 63 ).
- Максимальная величина – 9,223,372,036,854,775,807 (включительно). (2 63 -1).
- В Java Применяется когда требуется более широкий диапазон, чем int.
- По умолчанию – 0L.
- Пример:
long a = 100000L; long b =-200000L;
Тип float
- Тип данных float является c одинарной точностью 32-битный IEEE 754 с плавающей точкой.
- Тип float используется главным образом для сохранения памяти в больших массивах чисел с плавающей точкой.
- По умолчанию – 0.0f.
- Тип float никогда не должен применяется для точного значения, например, валюты.
- Пример:
float f1 = 234.5f;
Тип double
- Тип данных double является c двойной точностью 64-битный IEEE 754 с плавающей точкой.
- Обычно используется для десятичных значений.
- Тип double никогда не должен применяется для точного значения, например, валюты.
- По умолчанию – 0.0d.
- Пример:
double d1 = 123.4;
Тип boolean
- Тип данных boolean представляет собой один бит информации.
- Существует только два возможных значения: true и false.
- Предназначен для простых признаков, которые позволяют отслеживать условия true или false.
- По умолчанию – false.
- Пример:
boolean one = true;
Тип char
- Тип данных char является одним 16-разрядным символом Юникода.
- Минимальная величина равна «\u0000» (или 0).
- Максимальная величина равна «\uffff» (или 65535 включительно).
- В Java char нужен для хранения любого символа.
- Пример:
char letterA ='A';
Ссылочные типы данных
- Ссылочные переменные создаются с использованием определенных конструкторов классов. Они предназначены для доступа к объектам. Эти переменные объявляются с определенным типом, который не может быть изменен. Например, Employee, Puppy и т.д.
- Объекты класса и различные виды переменных массива подпадают под ссылочный тип данных.
- По умолчанию в Java значение любой переменной ссылки — null.
- Ссылочная переменная может применяться для обозначения любого объекта, объявленного или любого совместимого типа.
- Пример:
Animal animal = new Animal("giraffe");
Литералы в Java
Литерал – представление исходного кода как фиксированное значение. Оно представлено непосредственно в коде без каких-либо вычислений.
Литерал в Java можно назначить любой переменной из основного типа. Например:
byte a = 68; char a = 'A';
Byte, int, long, и short может выражаться десятичной (основание 10), шестнадцатеричной (основание 16) или восьмеричной (основание 8) системой исчисления.
При использовании литералов в Java, префикс 0 применяться для указания восьмеричной системы, а префикс 0x указывает на шестнадцатеричную систему. Например:
int decimal = 100; int octal = 0144; int hexa = 0x64;
Строковые литералы в языке Java задаются как и в большинстве других языков, заключив последовательность символов между парой двойных кавычек. Примеры строковых литералов:
"Hello World" "two\nlines" "\"This is in quotes\""
Типы литералов String и char могут содержать любые символы Юникода. Например:
char a = '\u0001'; String a = "\u0001";
Язык Java поддерживает несколько специальных управляющих последовательностей для литералов String и char:
Обозначение | Представление |
\n | Новая строка (0x0a) |
\r | Возврат каретки (0x0d) |
\f | Прогон страницы (0x0c) |
\b | Возврат на шаг (0x08) |
\s | пробел (0x20) |
\t | Табуляция |
\» | Двойная кавычка |
\’ | Апостроф |
\\ | Обратная косая черта |
\ddd | Восьмеричный символ (ddd) |
\uxxxx | Шестнадцатеричный символ UNICODE (xxxx) |
Более подробно управляющие последовательности с примерами рассмотрим в следующих уроках.
Следующий урок объясняет различные типы переменных и их использование. Это даст Вам хорошее представление о том, как они могут использоваться в java-классах, интерфейсах и т.д.
Оглавление
- 1. Java – Самоучитель для начинающих
- 2. Java – Обзор языка
- 3. Java – Установка и настройка
- 4. Java – Синтаксис
- 5. Java – Классы и объекты
- 6. Java – Конструкторы
- 7. Java – Типы данных и литералы
- 8. Java – Типы переменных
- 9. Java – Модификаторы
- 10. Java – Операторы
- 11. Java – Циклы и операторы цикла
- 11.1. Java – Цикл while
- 11.2. Java – Цикл for
- 11.3. Java – Улучшенный цикл for
- 11.4. Java – Цикл do..while
- 11.5. Java – Оператор break
- 11.6. Java – Оператор continue
- 12. Java – Операторы принятия решений
- 12.1. Java – Оператор if
- 12.2. Java – Оператор if..else
- 12.3. Java – Вложенный оператор if
- 12.4. Java – Оператор switch..case
- 12.5. Java – Условный оператор (? 🙂
- 13. Java – Числа
- 13.1. Java – Методы byteValue(), shortValue(), intValue(), longValue(), floatValue(), doubleValue()
- 13.2. Java – Метод compareTo()
- 13.3. Java – Метод equals()
- 13.4. Java – Метод valueOf()
- 13.5. Java – Метод toString()
- 13.6. Java – Метод parseInt()
- 13.7. Java – Метод Math.abs()
- 13.8. Java – Метод Math.ceil()
- 13.9. Java – Метод Math.floor()
- 13.10. Java – Метод Math.rint()
- 13.11. Java – Метод Math.round()
- 13.12. Java – Метод Math.min()
- 13.13. Java – Метод Math.max()
- 13.14. Java – Метод Math.exp()
- 13.15. Java – Метод Math.log()
- 13.16. Java – Метод Math.pow()
- 13.17. Java – Метод Math.sqrt()
- 13.18. Java – Метод Math.sin()
- 13.19. Java – Метод Math.cos()
- 13.20. Java – Метод Math.tan()
- 13.21. Java – Метод Math.asin()
- 13.22. Java – Метод Math.acos()
- 13.23. Java – Метод Math.atan()
- 13.24. Java – Метод Math.atan2()
- 13.25. Java – Метод Math.toDegrees()
- 13.26. Java – Метод Math.toRadians()
- 13.27. Java – Метод Math.random()
- 14. Java – Символы
- 14.1. Java – Метод Character.isLetter()
- 14.2. Java – Метод Character.isDigit()
- 14.3. Java – Метод Character.isWhitespace()
- 14.4. Java – Метод Character.isUpperCase()
- 14.5. Java – Метод Character.isLowerCase()
- 14.6. Java – Метод Character.toUpperCase()
- 14.7. Java – Метод Character.toLowerCase()
- 14.8. Java – Метод Character.toString()
- 15. Java – Строки
- 15.1. Java – Метод charAt()
- 15.2. Java – Метод compareTo()
- 15.3. Java – Метод compareToIgnoreCase()
- 15.4. Java – Метод concat()
- 15.5. Java – Метод contentEquals()
- 15.6. Java – Метод copyValueOf()
- 15.7. Java – Метод endsWith()
- 15.8. Java – Метод equals()
- 15.9. Java – Метод equalsIgnoreCase()
- 15.10. Java – Метод getBytes()
- 15.11. Java – Метод getChars()
- 15.12. Java – Метод hashCode()
- 15.13. Java – Метод indexOf()
- 15.14. Java – Метод intern()
- 15.15. Java – Метод lastIndexOf()
- 15.16. Java – Метод length()
- 15.17. Java – Метод matches()
- 15.18. Java – Метод regionMatches()
- 15.19. Java – Метод replace()
- 15.20. Java – Метод replaceAll()
- 15.21. Java – Метод replaceFirst()
- 15.22. Java – Метод split()
- 15.23. Java – Метод startsWith()
- 15.24. Java – Метод subSequence()
- 15.25. Java – Метод substring()
- 15.26. Java – Метод toCharArray()
- 15.27. Java – Метод toLowerCase()
- 15.28. Java – Метод toString()
- 15.29. Java – Метод toUpperCase()
- 15.30. Java – Метод trim()
- 15.31. Java – Метод valueOf()
- 15.32. Java – Классы StringBuilder и StringBuffer
- 15.32.1. Java – Метод append()
- 15.32.2. Java – Метод reverse()
- 15.32.3. Java – Метод delete()
- 15.32.4. Java – Метод insert()
- 15.32.5. Java – Метод replace()
- 16. Java – Массивы
- 17. Java – Дата и время
- 18. Java – Регулярные выражения
- 19. Java – Методы
- 20. Java – Потоки ввода/вывода, файлы и каталоги
- 20.1. Java – Класс ByteArrayInputStream
- 20.2. Java – Класс DataInputStream
- 20.3. Java – Класс ByteArrayOutputStream
- 20.4. Java – Класс DataOutputStream
- 20.5. Java – Класс File
- 20.6. Java – Класс FileReader
- 20.7. Java – Класс FileWriter
- 21. Java – Исключения
- 21.1. Java – Встроенные исключения
- 22. Java – Вложенные и внутренние классы
- 23. Java – Наследование
- 24. Java – Переопределение
- 25. Java – Полиморфизм
- 26. Java – Абстракция
- 27. Java – Инкапсуляция
- 28. Java – Интерфейсы
- 29. Java – Пакеты
- 30. Java – Структуры данных
- 30.1. Java – Интерфейс Enumeration
- 30.2. Java – Класс BitSet
- 30.3. Java – Класс Vector
- 30.4. Java – Класс Stack
- 30.5. Java – Класс Dictionary
- 30.6. Java – Класс Hashtable
- 30.7. Java – Класс Properties
- 31. Java – Коллекции
- 31.1. Java – Интерфейс Collection
- 31.2. Java – Интерфейс List
- 31.3. Java – Интерфейс Set
- 31.4. Java – Интерфейс SortedSet
- 31.5. Java – Интерфейс Map
- 31.6. Java – Интерфейс Map.Entry
- 31.7. Java – Интерфейс SortedMap
- 31.8. Java – Класс LinkedList
- 31.9. Java – Класс ArrayList
- 31.10. Java – Класс HashSet
- 31.11. Java – Класс LinkedHashSet
- 31.12. Java – Класс TreeSet
- 31.13. Java – Класс HashMap
- 31.14. Java – Класс TreeMap
- 31.15. Java – Класс WeakHashMap
- 31.16. Java – Класс LinkedHashMap
- 31.17. Java – Класс IdentityHashMap
- 31.18. Java – Алгоритмы Collection
- 31.19. Java – Iterator и ListIterator
- 31.20. Java – Comparator
- 32. Java – Дженерики
- 33. Java – Сериализация
- 34. Java – Сеть
- 34.1. Java – Обработка URL
- 35. Java – Отправка Email
- 36. Java – Многопоточность
- 36.1. Java – Синхронизация потоков
- 36.2. Java – Межпоточная связь
- 36.3. Java – Взаимная блокировка потоков
- 36.4. Java – Управление потоками
- 37. Java – Основы работы с апплетами
- 38. Java – Javadoc
Литералы
Целочисленные литералы — самый используемый тип в программах. Любое целочисленное значение является числовым литералом, т.е. значения 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;
Символы подчёркивания будут проигнорированы компилятором. Учтите, что можно использовать несколько подряд символов подчёркивания, но нельзя использовать символы подчёркивания в начале или в конце литерала.
Подобная запись удобна при записи вручную программистом номеров телефонов и тому подобных вещей, чтобы визуально лучше анализировать значения. А умная железка сама разберётся, что к чему и не будет удивляться символам подчёркивания в числах.
Все о литералах в вопросах разработки
В программировании при составлении программного обеспечения необходимо знать немало особенностей выбранного языка разработки. Во многих из них есть так называемые литералы, значения которых новичкам не всегда понятны.
В данной статье будет рассказано о том, что такое literals, какие у них бывают типы, чем они отличаются друг от друга. В программировании соответствующие ответы значительно упростят процедуру написания контента.
Определение
Литерал в программировании – это безымянная константа. Представляет собой своеобразную запись в имеющемся коде приложения, которая выражена фиксированным значением. Литералами выступают еще и представления значения некоторых типов данных.
Нужно запомнить следующие особенности literal:
- они представлены константами, которые включаются непосредственно в текст имеющегося приложения;
- не могут изменяться по мере обработки программного кода – это одно из их ключевых отличий от переменных;
- изменяются в имеющемся контенте только в режиме редактирования;
- бывают разных типов.
Настоящие именованные константы тоже не подлежат в программировании редактированию во время непосредственного исполнения приложения. В некоторых языках разработки (пример – Delphi) при помощи ключевого слова «const» (без кавычек) иногда обозначаются инициализированные до начала обработки кода статические переменные. Такие компоненты могут редактироваться в процессе работы приложения.
Использовать разнообразные типы литералов не слишком трудно. Но сначала нужно знать, как выглядят соответствующие компоненты. Пример выше поможет лучше разобраться в соответствующем вопросе.
Здесь «1» и «Кот» — это литералы, а string pet и int number – непосредственные переменные.
Разновидности
Почти каждый язык программирования позволяет использовать разнообразные типы literals. В зависимости от «разновидности» будет меняться содержание литерала.
В языках разработки предусматриваются примитивные типы. Они отличаются по синтаксису в ЯП. Далее будут приведены примеры того, в коде выглядят литералы Java и C#. Чаще всего встречаются следующие типы литерала:
- символьный;
- строковый;
- логический;
- пустое значение (null);
- регулярное выражение;
- литералы-функции;
- литералы-объекты.
Далее использование рассматриваемого компонента будет разобрано на примере C# и Java. На второй язык программирования сделан больший упор ввиду его повсеместного и стремительного распространения.
Числа
Первый вариант – это числовые литералы. Они бывают:
- целочисленные;
- с плавающей запятой.
Целочисленный литерал – это почти то же самое, что и целые числа. Соответствующая запись является элементарной. Все числовые компоненты записываются в привычной, «стандартной» форме без указывающих символов и прочих составляющих.
Любое число в Java – это по умолчанию целочисленный literal. Допускается явное задание значения переменной или количества итераций в имеющемся цикле. В Java поддерживаются 4 системы счисления:
- двоичная;
- десятичная;
- шестнадцатеричная;
- восьмеричная.
При рассмотрении числовых литералов в Java нужно запомнить – в JDK 7 появилась возможность записи двоичных значений. Для этого используются префиксы 0b и 0B, а после осуществляется запись с использованием нулей и единиц.
Несмотря на то, что числовые (целые) задаются в разных системах счисления, они будут обрабатываться как десятичные. Это значит, что выход за пределы значений приводят к ошибкам компиляции:
По умолчанию целочисленный literal в Java имеет тип int. Если его «параметр» выйдет за пределы присваиваемой переменной, значит в приложении на этапе компиляции возникнет ошибка. Можно использовать тип long. Для этого в конце строчки необходимо выставить символ «L»:
А вот так выглядит присваивание значения «целому» литералу в C#:
Целочисленные «параметры» могут быть как положительными, так и отрицательными.
С плавающей точкой (вещественные)
Следующий вариант – это дробные числа. Они носят название вещественных или «с плавающей точкой». Означает это то, что литералы могут обозначать не только целые, но и дробные элементы. Особо полезный вариант, если в коде использована функция или иное математическое выражение.
Вещественный тип необходимо можно представить несколькими способами:
- классической десятичной дробью;
- в научном виде (дробь + суффикс в виде e или E и степени 10).
В Java второй вариант сохраняется в переменной и обрабатывается точно так же, как и классическая форма представления.
Числа с плавающей точкой – это значит, что переменная будет иметь тип double по умолчанию. Можно задействовать float. Для этого в конце строки необходимо поставить f или F:
А вот – пример в C#:
Рассматривая типы существующих литералов, нужно запомнить – в Java нельзя создать литерал-объект. К такому элементу имеет отношение только null.
Строковый вариант
Следующий вариант – это строковый literal. По названию становится ясно – он представляет собой какую-то запись. Строковый литерал – это набор символов, заключенных в двойные кавычки в программном коде. Является достаточно распространенным типом. Он применяется на практике так же часто, как и числовой. Строковый literal может включать в себя служебные символы, которые требуется экранировать (escape-последовательности).
Строковый литерал – это самая обычная строка с заданной записью. Не функция и не команда. Служит для того, чтобы использовать в программном коде тот или иной текст:
Если внутри заданной строки нужно отобразить двойную кавычку, ее в C# необходимо предварить обратным слешем. В соответствующем типе поддерживается использование управляющих последовательностей.
Символьные
Символьные литералы в Java представлены кодовыми таблицами Unicode. Каждый символ – это 16-бит. Символьный literal обозначается при помощи одинарных кавычек.
Существуют два вида символьных записей:
- Обычный вариант. Это то, что можно ввести непосредственно с клавиатуры.
- Специальный. Символы, которые не получится напечатать на клавиатуре.
Первый вариант можно указать явно. Если в коде используется служебный символ, нужно экранировать его при помощи обратного слеша. Когда нужно, чтобы в консоли появилась функция (константа), рекомендуется использование строкового типа. Это никакой не магический прием, а информация, о которой должен знать каждый разработчик.
Символы, которые нельзя задать в консоли «по умолчанию», допускается использовать в 16-битовом коде. Для этого он указывается с префиксом \u. В восьмеричном стиле задействован обратный слеш.
В C# среди использующихся типов литералов отдельно выделяют управляющие последовательности. Если компилятор их встречает, то он воспринимает «команду» как существующую, а не как запись «слеш + буква». Шестнадцатеричный код тоже заключается в одинарные кавычки.
Логические
В ЯП существуют различные типы так называемых литералов, составляющие значимую часть кода. Последний распространенный вариант – это логическая разновидность. Принимает всего 2 значения – «истина» и «ложь». Это – «магический» тип, который позволяет работать с переменными вида boolean.
Используется для обозначения констант true и false в приложении:
Использовать соответствующий компонент в блоках с if можно, но такой вариант является моветоном.
Отдельно стоит отметить «магический» тип – null. Это ссылка, которая не указывает ни на один объект. Представлено пустым значением.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus !