„Амиго, завиждам ти. Да учиш нови неща е толкова прекрасно! А днес те очаква една нова и интересна тема — литералите.“

„Очевидно трябва да кажа, че съм най-щастливият робо-студент на планетата, Риши. Е, готов съм да попия новите знания!“

„Тогава да преминем към него веднага. Литералите са специфични данни, записани директно в програмния code. Не говорим за Howвито и да било данни. Говорим само за примитивни типове и низове.

Да предположим например, че имате този code:

Код Литерали
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

„Литералите в този code са числото 5 , числото 10 и низът „ Сума = “.

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

"В Java всичко, включително литералите, има тип. Всички целочислени литерали (цели числа) в codeа са int . Типът int е стандартният тип цяло число на Java."

"Познавам този тип. Използвал съм го."

„Спомняте ли си други цели числа освен int? Някои, които заемат по-малко място в паметта?“

"Разбира се! Байт и кратко."

„Това са тези. Така че, ако във вашия code решите да присвоите цяло число литерал на променлива от тип byte or short, няма да има проблеми. Основното е, че стойността на литерала е в диапазона от стойности, които Типът на променливата може да съхранява. Компилаторът на Java е достатъчно умен, за да разбере, че на byteова променлива може да бъде присвоен целочислен литерал 100.

Примери:

Код Описание
int a = 300;
Това ще се компorра добре.
byte a = 100; 
Това ще се компorра добре.
byte a = 300;
Ще има грешка при компorране, тъй като максималната стойност на byteа е 127.

— Ами дългият тип?

„Можем също да напишем литерали от този тип в нашия code. За да направите това, добавете латинската буква „L“ or „l“ в края на цялото число.

Примери:

Код Описание
long a = 3000000000L; 
Това ще се компorра добре.
long a = 3000000000; 
Грешка при компилация: 3 мorарда са твърде големи за int литерал.
int a = 3000000000L; 
Грешка при компилация: литералът е дълъг, но променливата е int. Освен това 3 мorарда са повече от максималния инт.

„Забелязахте ли колко трудно е да четете големи числа от 10 or повече цифри?

„Да, ако не сте активирали вашата robovision, тогава няма да стане ясно веднага дали говорим за 3 мorарда or 30.“

„За да направи codeа по-четлив (и това е важно!), Java позволява вмъкване на долни черти в числови литерали (те не влияят на стойността на числото).

„Примерът по-горе може да бъде пренаписан с долни черти, за да стане малко по-ясен:

Код Описание
long a = 3_000_000_000L; 
Това ще се компorра добре.
long a = 3_000_000_000; 
Грешка при компилация: 3 мorарда са твърде големи за int литерал.
int a = 3_000_000_000L; 
Грешка при компилация: литералът е дълъг, но променливата е int. Освен това 3 мorарда са повече от максималния инт.

„Това е много по-удобно за четене, въпреки че запетая instead of долна черта би била по-позната!“

„Но не можем да използваме запетаи в числови литерали, защото те вече се използват за друга цел. Например, за разделяне на аргументи един от друг при извикване на метод.

Реални числови литерали

„Вероятно вече сте се досетor, че във вашия code можете да посочите не само цели числа, но и литерали с плаваща запетая (реални числа).“

„Както удвоява, така и плава?“

„Да. Всъщност правилото е доста просто: ако число в codeа има десетична запетая в него, тогава числото е литерал с плаваща запетая. И не Howъв да е литерал, а двоен литерал. За да създадете литерал с плаваща запетая , трябва да поставите буквата „F“ (or „f“) в края на числото .

Примери:

Код Описание
double a = 100.0; 
Това ще се компorра добре.
double a = 100.;
Това ще се компorра добре.
double a = .0;
Това ще се компorра добре.
float a = 100.0f; 
Това ще се компorра добре.
float a = 100.0; 
Ще има грешка при компorране: променливата е float, но литерала е double.

„Между другото, можете изрично да конвертирате литерал на цяло число в float or double литерал, като просто добавите суфикса „F“ (за float ) or D (за double ). Примери:

Код Описание
double a = 100D;
Това ще се компorра добре.
float a = 100F; 
Това ще се компorра добре.
int a = 300D; 
Ще има грешка при компorране: променливата е int, но литералът е double .

„Литералите с плаваща запетая могат да използват научна нотация : в допълнение към знаковата част от числото, можете също да посочите степен на десет. Пример:

Буквално Математическа нотация Крайна стойност
1.23 E 2 1,23*10 2 123,0
1.23 E 3 1,23*103 1230.0
1.23 E -6 1,23*10 -6 0,00000123
1 E 6 1,0 *10 6 1000000.0
1 E -10 1,0*10 -10 0,0000000001

Низови литерали

„Можете също да посочите цели редове текст във вашия code. За да кажете на компилатора да третира низ като данни (литерал), а не като част от codeа, целият низ е заобиколен от двойни кавички от двете страни.

„Ако един ред code има няколко двойни кавички, те се разделят на двойки. Първата двойна кавичка показва началото на литерала. Следващата показва края на литерала. Следващата след това отново маркира начало на нов литерал. И следващият бележи края на втория литерал. И така нататък.

„Всеки такъв литерал е низ .

Примери

Код Обяснение
"+"+"+"+"+"+"+"+"+"
Има 5 литерала в един ред. Всеки от тях се състои от един знак "+".
""
Този литерал е празен низ. Низ без знаци.
"2+3"+"-5"
Тук има два литерала. Резултатът ще бъде низът „2+3-5“, а не число
"return"+";"
Тук също има два литерала. Тук няма изявление за връщане.

„Ако литералът на низ е твърде дълъг, той може да бъде разделен на няколко реда и слепен заедно с „оператора плюс“:

Код Обяснение
String s = "I hold it true, whate'er befall"
         + "I feel it when I sorrow most;"
         + "'Tis better to have loved and lost"
         + "Than never to have loved at all.";
Ако изведете този ред на екрана, тогава целият текст ще бъде показан на един ред!

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

"Ами ако имам нужда от литерал, който е един знак, а не низ? Трябва ли да създам низ, който се състои от един знак?"

„Не, в такъв случай имате нужда от литерал, чийто тип е char. Можете ли да познаете How се обозначават началото и краят на такъв литерал?“

„Единични кавички?“

„Да, и вътре в единичните кавички трябва да има символ и само един знак. Не можете да използвате празни единични кавички.

Примери:

Код Обяснение
'A'
Литерал, чийто тип е char. Съдържа латинската буква "A".
'@' 
Литерал, чийто тип е char. Съдържа символа „@“.
'' 
Литерал, чийто тип е char. Съдържа японски символ. И това също е възможно.
'\u1f3a'
Литерал, чийто тип е char. Той съдържа Unicode знак, определен от неговия номер.

"Последният пример присвоява Unicode знак, използвайки специална нотация: първо имаме префикса \\u, последван от 4 шестнадесетични знака. Ще научите повече за това в следващите уроци."