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

Что такое литералы в 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; 

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

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 .

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

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

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

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

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

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; 

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

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

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

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