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

А сега нова интересна тема — литерали. Данните, записани директно в програмния code, се наричат ​​литерали . Не говорим за стари данни, а за стойностите на примитивните типове и типа String.

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

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

Литералите в този code са числото , числото и низът „ .510Sum =

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

Нещо повече, ако решите да присвоите целочислен литерал на byteова променлива or къса променлива във вашия code, няма да има проблеми. Просто трябва да се уверите, че стойността на литерала е в диапазона от стойности, които типът на променливата може да съхранява.

Компилаторът на Java е достатъчно умен, за да разбере, че на една byteпроменлива може да бъде присвоен целочислен литерал 100, без да създава проблеми.

Примери:

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

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

Примери:

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

Забелязахте ли колко трудно е да четете големи числа от 10 or повече цифри? Не можете веднага да разберете дали codeът казва 3 мorарда or 30 мorарда. За да направи 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арда са повече от максималния инт.

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



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

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

Всъщност правилото е доста просто: ако число в codeа има десетична запетая в него, тогава числото е литерал с плаваща запетая. И не Howъвто и да е буквален, а doubleбуквален.

Можете да създадете плаващ литерал, но трябва да поставите буквата „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.

Между другото, можете изрично да конвертирате целочислен литерал в плаващ or двоен литерал просто чрез ). Примери: appending the suffix 'F' (for float) or D (for double)

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

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

Буквално Математическа нотация Крайна стойност
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


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

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

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

Всеки такъв литерал е String.

Примери

Код Обяснение
"+" + "+" + "+" + "+" + "+"
Има 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.";
Ако изведете този ред на екрана, тогава целият текст ще бъде показан на един ред!


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

Можете да зададете не само низови литерали във вашия code, но и литерали, съставени от отделни знаци. Обърнете внимание, че не говорим за низ, състоящ се от един знак, а по-скоро за литерали, чийто тип е char.

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

Примери:

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

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