Примитивные типы 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; 

Существует так называемая научная нотация записи вещественных чисел:

Читайте также:  Java scanner nextint error

Значение этого числа равно 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 letterO = '\u004F'; // Буква 'O' в шестнадцатеричной форме char letter_a = '\141'; // Буква 'a' в восьмеричной форме

Есть возможность присвоения числового литерала символьному типу. Числовой литерал должен находиться в диапазоне от 0 до 65535. Например:

char a1 = 0x675; // шестнадцатеричный целочисленный литерал char a2 = 345; // десятеричный целочисленный литерал char a3 = (char)80000; // Делается приведение типов, т.к. 80000 //превышает диапазон char типа

Символ обратной косой черты может быть использован для обозначения символов не имеющих точного написания, например символ перевода строки, табуляции, backspace, двойные и одинарные кавычки:

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

  • Для обозначения строковых литералов последовательность символов заключается в двойные кавычки.
  • Управляющие символы и восьмеричная или шестнадцатеричная форма записи, определенные для символьных литералов, действуют точно так же и в строковых литералах.
  • Строки могут располагаться только на одной строке исходного кода, нельзя открывающую кавычку поставить на одной строке, а закрывающую — на следующей.
String str1 = "MyProgram"; String str2 = "first line\nsecond line"; String str3 = "\"This is in quotes\""; String str4 = "\u004F letter";//O letter

Презентацию с видео можно скачать на Patreon .

Источник

Литералы в Java

Java-университет

На этапе создания приложения разработчик, как правило, знает только его структуру и не предполагает, какие данные оно будет обрабатывать. Тем не менее, в некоторых ситуациях в коде программы нужно явно указывать какие-то данные (например, количество итераций или сообщение для вывода). В этом случае на помощь приходят литералы. Содержание:

  • Что такое литералы
  • Типы литералов и их применение
  • Числовые литералы
  • Строковые литералы
  • Символьные литералы
  • Логические литералы
  • Джедайская техника с литералами
  • Литералы в курсе JavaRush
  • Заключение

Что такое литералы?

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

В этом классе “Hello world!” — литерал. Литералы бывают разных типов, которые определяются их назначением и способом написания.

Типы литералов и их применение

  1. Числовые:
    • Целочисленные;
    • С плавающей точкой;
  2. Строковые;
  3. Символьные;
  4. Логические.

Числовые литералы

Целочисленные литералы

 public static void main(String[] args)

Вывод: Число a в двоичной системе: 854 Число b в восьмеричной системе: 5324 Число c в десятичной системе: 456 Число d в шестнадцатеричной системе: 1318162 Несмотря на то, что числа задаются в разных системах счисления, в программе они обрабатываются как десятичные числа. Выход за пределы значений приведет к ошибке компиляции:

 int b = 012914; // Ошибка int d = 0x141Z12; // Ошибка 
 Error:(13, 25) java: integer number too large: 012914 Error:(14,30) java: ';' expected 

А что с типизацией? Любой целочисленный литерал по умолчанию имеет тип int . Если его значение выходит за пределы присваиваемой переменной, происходит ошибка компиляции. При использовании типа long необходимо в конце ставить символ L , обозначающий этот тип:

 long x = 0x1101010110; // Ошибка long b = 1342352352351351353L; // Все в порядке 
 Error(11, 26) java: integer number too large: 1101010110 

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

Числа с плавающей точкой, или дробные числа, могут записываться двумя способами. Первый — в качестве классической десятичной дроби: 3.14159 или 2.718281282459045. Второй — в научном виде, то есть обычная десятичная дробь плюс суффикс в виде символа е или Е и степени 10, на которую нужно умножить указанную дробь. Например, 4.05E-13, это значит 4.05 * 10 -13 .

 double a = 2.718281828459045; double d = 4.05E-13; System.out.println("Тип double в классическом виде: " + a); System.out.println("Тип double в научном виде: " + d); 

Вывод: Тип double в классическом виде: 2.718281828459045 Тип double в научном виде: 4.05E-13 В отличие от целых чисел и систем счисления, научная форма записи сохраняется в переменной и обрабатывается также, как классическая форма. Что с типизацией? Любое число с плавающей точкой создает тип double . Если необходимо использовать тип float , следует добавить в конце символ f или F . В этом случае double будет сведен к типу float . Автоматически этого не происходит:

 float a = 2.718281828459045; // Ошибка float d = 4.05E-13F; // Все в порядке 
 Error:(11, 27) java: incompatible types: possible lossy conversion from double to float 

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

Строковые литералы — это набор символов, заключенных в двойные кавычки. Данный тип используется так же часто, как и числовые литералы. В строке также могут находится служебные символы, которые необходимо экранировать (так называемые escape-последовательности). Пример:

 String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, как и все мы."; String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\"."; System.out.println(simpleString); System.out.println(uniqueString); 

Вывод: Это обычная строка. Такая же стандартная и непримечательная, как и все мы. А это необычная «строка». Хотя бы потому, что часть «слов» в ней в «кавычках».

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

  1. Те, что можно ввести с клавиатуры — обычные символы;
  2. Символы, которые просто так с клавиатуры не ввести (символы различных языков, фигуры и так далее).
 System.out.println("Амперсанд - " + '&'); System.out.println("Символ деления - " + '\u00F7'); 

Логические литералы

Самый простой литерал — это логический. Имеется всего 2 значения: false и true , которые указываются явно без различных символов. Такие литералы могут быть присвоены переменным типа boolean или указаны в месте, где ожидается тип boolean (например, в блоке if, хотя такая практика считается, мягко говоря, моветоном).

 boolean flag = false; if(true) < // Действия будут выполняться всегда. >

Джедайская техника с литералами

Благодаря символам в Java можно делать много интересных штук, в числе которых — управление эмоджи. Например, выведем улыбающееся лицо:

 int smile = 0x1F600; // Здесь шестнадцатеричный код эмоджи StringBuilder sb = new StringBuilder(); sb.append(Character.toChars(smile)); // Собираем в StringBuilder System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим 

Вывод: Улыбающееся лицо: 😀 Несмотря на то, что отображение эмоджи может быть жутковатым (в зависимости от реализации), это решение неплохо справляется с задачей. Однако в стандартной таблице кодировок сложно искать нужные эмоджи, на официальном сайте раздел Эмотикон скуден. Гораздо проще воспользоваться дополнительными библиотеками.

Литералы в курсе JavaRush

В курсе JavaRush литералы изучаются на 10 уровне в 8 лекции курса Java Syntax, где на примерах объясняется, что такое литералы и зачем они нужны. JavaRush — онлайн-курс по программированию на Java с акцентом на практику: 1200+ задач с моментальной проверкой, мини-проекты, игры.

Заключение

Литералы в Java — удобная вещь в любой программе, однако использовать их необходимо в тех местах, где это уместно. Не стоит хардкодить в исходниках параметры подключения к БД или какие-либо значения, которые могут измениться во время жизненного цикла программы.

Источник

Оцените статью