1. Literale întregi

Și acum pentru un nou subiect interesant - literalmente. Datele scrise direct în codul programului sunt numite literale . Nu vorbim despre date vechi, ci despre valorile tipurilor primitive și ale Stringtipului.

De exemplu, să presupunem că aveți următorul cod:

Cod Literale
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

Literale din acest cod sunt numărul , numărul și șirul ' ' .510Sum =

În Java, totul, inclusiv literalele, are un tip. În mod implicit, toate literalele întregi (numerele întregi) din cod sunt ints. Tipul int este tipul întreg Java standard.

În plus, dacă decideți să atribuiți un literal întreg unei variabile octet sau unei variabile scurte din codul dvs., nu vor fi probleme. Trebuie doar să vă asigurați că valoarea literală se află în intervalul de valori pe care tipul variabilei le poate stoca.

Compilatorul Java este suficient de inteligent pentru a înțelege că unei bytevariabile i se poate atribui literalul întreg 100 fără a crea probleme.

Exemple:

Cod Descriere
int a = 300;
Aceasta se va compila foarte bine.
byte a = 100; 
Aceasta se va compila foarte bine.
byte a = 300; 
Va apărea o eroare de compilare, deoarece valoarea maximă a octetilor este 127.

De asemenea, puteți scrie longliterale în codul dvs. Pentru a face acest lucru, adăugați litera latină „L” sau „l” la sfârșitul numărului întreg.

Exemple:

Cod Descriere
long a = 3000000000L; 
Aceasta se va compila foarte bine.
long a = 3000000000; 
Eroare de compilare: 3 miliarde este prea mare pentru un literal int.
int a = 3000000000L; 
Eroare de compilare: literalul este un lung, dar variabila este un int. În plus, 3 miliarde este mai mult decât maximul int.

Ați observat cât de dificil este să citiți numere mari de 10 sau mai multe cifre? Nu poți spune imediat dacă codul spune 3 miliarde sau 30 de miliarde. Pentru a face codul mai lizibil (și acest lucru este important!), Java permite inserarea liniuțelor de subliniere în literalele numerice (acestea nu afectează valoarea numărului).

Exemplul de mai sus poate fi rescris cu liniuțe de subliniere pentru a fi puțin mai clar:

Cod Descriere
long a = 3_000_000_000L; 
Aceasta se va compila foarte bine.
long a = 3_000_000_000; 
Eroare de compilare: 3 miliarde este prea mare pentru un literal int.
int a = 3_000_000_000L; 
Eroare de compilare: literalul este un lung, dar variabila este un int. În plus, 3 miliarde este mai mult decât maximul int.

Dar nu putem folosi virgulele în literalele numerice, deoarece acestea sunt deja folosite în alt scop. De exemplu, pentru separarea argumentelor unul de celălalt la apelarea unei metode.



2. Literale cu numere reale

În codul dvs., puteți specifica nu numai numere întregi, ci și literale în virgulă mobilă (numere reale).

De fapt, regula este destul de simplă: dacă un număr din cod are o virgulă zecimală, atunci numărul este un literal cu virgulă mobilă. Și nu orice literal, ci un doubleliteral.

Puteți crea un literal flotant, dar trebuie să puneți litera „F” (sau „f”) la sfârșitul numărului pentru a face asta .

Exemple:

Cod Descriere
double a = 100.0; 
Aceasta se va compila foarte bine.
double a = 100.;
Aceasta se va compila foarte bine.
double a = .0;
Aceasta se va compila foarte bine.
float a = 100.0f; 
Aceasta se va compila foarte bine.
float a = 100.0; 
Va exista o eroare de compilare: variabila este un float, dar literalul este un dublu.

Apropo, puteți converti în mod explicit un literal întreg într-un literal flotant sau dublu pur și simplu ). Exemple: appending the suffix 'F' (for float) or D (for double)

Cod Descriere
double a = 100D; 
Aceasta se va compila foarte bine.
float a = 100F; 
Aceasta se va compila foarte bine.
int a = 300D; 
Va exista o eroare de compilare: variabila este un int, dar literalul este un double.

Literale în virgulă mobilă pot folosi notația științifică : pe lângă partea semnată a numărului, puteți specifica și o putere de zece. Exemplu:

Literal Notatie matematica Valoarea finală
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. Literale șiruri

De asemenea, puteți specifica linii întregi de text în codul dvs. Pentru a-i spune compilatorului să trateze un șir ca date (un literal) și nu ca parte a codului, întregul șir este înconjurat de ghilimele duble pe ambele părți.

Dacă o singură linie de cod are mai multe ghilimele duble, atunci acestea sunt împărțite în perechi. Primele ghilimele duble indică începutul unui literal. Următorul indică sfârșitul literalului. Următorul după aceea marchează încă o dată începutul unui nou literal. Și următorul marchează sfârșitul celui de-al doilea literal. Și așa mai departe.

Fiecare astfel de literal este un String.

Exemple

Cod Explicaţie
"+" + "+" + "+" + "+" + "+"
Există 5 literale într-o linie. Fiecare dintre ele este format dintr-un singur  +personaj
""
Acest literal este un șir gol. Un șir fără caractere.
"2+3" + "-5"
Există două literale aici. Rezultatul va fi șirul „ „ 2+3-5, nu un număr
"return" + ";"
Există, de asemenea, două literale aici. Nu există nicio declarație de returnare aici.

Dacă un șir literal este prea lung, acesta poate fi împărțit în mai multe linii și lipit împreună cu „operatorul plus”:

Cod Explicaţie
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.";
Dacă afișați această linie pe ecran, atunci tot textul va fi afișat pe o singură linie!


4. Litere de caractere

Puteți specifica nu numai literale șir în codul dvs., ci și literale compuse din caractere individuale. Rețineți că nu vorbim despre un șir format dintr-un singur caracter, ci mai degrabă despre literali al căror tip este char.

Spre deosebire de un șir, un caracter literal este înconjurat de ghilimele simple . În ghilimele simple trebuie să existe un caracter și doar un caracter. Nu puteți folosi ghilimele simple goale.

Exemple:

Cod Explicaţie
'A'
Un literal al cărui tip este char. Conține litera latină „A”.
'@' 
Un literal al cărui tip este char. Conține simbolul „@”.
'' 
Un literal al cărui tip este char. Conține un caracter japonez. Și acest lucru este posibil.
'\u1f3a'
Un literal al cărui tip este char. Conține un caracter Unicode specificat de numărul său.

Ultimul exemplu atribuie un caracter Unicode folosind o notație specială: mai întâi avem prefixul \u, urmat de 4 caractere hexazecimale. Următoarele lecții includ informații detaliate despre acest lucru.