luni, 1 septembrie 2025

Structura lexicală a limbajului Java

Alfabetul limbajului de programare

Reprezintă totalitatea caracterelor din care se pot forma instrucțiunile unui limbaj. Include:
litere (A–Z, a–z),cifre (0–9),simboluri speciale (+, -, *, /, =, <, >, etc.),caractere de control (spațiu, tab, enter),semne de punctuație (;, ,, ., : etc.).

Vocabularul limbajului

Este mulțimea de cuvinte și simboluri pe care limbajul le recunoaște și le folosește pentru a forma programe.
Din vocabular fac parte unitățile lexicale: cuvintele cheie, identificatorii, numerele, șirurile de caractere, simbolurile speciale și separatorii.

Unități lexicale ale limbajului

Setul de caractere

Limbajului Java folosește setul de caractere Unicode. Acesta fiind un standard internațional care înlocuiește vechiul set de caractere ASCII, deoarece a apărut necesitatea de a reprezenta mai mult de 256 de caractere. Setul de caractere Unicode, fiind reprezentat pe 16 biți oferă posibilități mult mai mari. Ceea ce înseamnă că pot fi folosite caractere în limbile chineză, japoneză și alte limbi. La citirea fişierului sursa, compilatorul Java folosește secvențele escape Unicode. Acestea sunt secvențe de caractere ASCII care încep cu caracterul backslash (\), după care urmează al doilea caracter din secvență care trebuie să fie u sau U, urmate de o combinație de patru cifre hexazecimale care formează împreună doi octeți de memorie reprezentând un caracter Unicode. De exemplu, cifrele de la 0 la 9 sunt reprezentate prin secvențe escape Unicode de la \u0030 la \u0039 și sunt interpretate ca cifre ISO-LATIN-1.

Unele caractere speciale nu pot fi scrise direct în text și sunt reprezentate prin așa-numitele secvențe escape:
\n - linie noua
\b - backspace
\t - tab
\\ - backslash
\” - ghilimele
\’ - apostrof
Adăugător despre secvențele Escape:
 https://www.geeksforgeeks.org/java/escape-sequences-in-java/


Identificatori

Reprezintă șiruri de caractere care sunt de fapt denumirile date unei variabile, clase sau unei funcții. Condiții:

  • şirul începe cu o literă, caracterul underscore (_) sau semnul dolarului ($);
  • şirul este diferit de orice cuvânt cheie sau rezervat;
  • şirul este diferit de null, false, true.
  • șirul este case-sensitive, astfel identificatorii suma și Suma sunt considerați identificatori diferiți.

Deși nu există o regulă obligatorie pentru scrierea identificatorilor, există anumite convenții utilizate:
  • identificatorii numelor de clase încep cu majusculă, fiecare cuvânt distinct din identificator începe cu majuscula (ex. MijloaceDeTransport);
  • identificatorii de variabila și metode încep cu litera mică, fiecare cuvânt care urmează începe cu majusculă (ex. setezCuloare());
  • identificatorii de constante se scriu cu majuscule (ex. PI_VALOARE);
Menținerea unei convenții clare și respectarea regulilor de denumire a identificatorilor nu doar facilitează înțelegerea codului, dar și îmbunătățește claritatea și întreținerea acestuia.


Cuvinte cheie

Limbajul de programare Java conține 50 cuvinte rezervate ce au o semnificație specială pentru compilator și nu pot fi utilizate în calitate de identificatori pentru variabile. Acestea sunt prezentate în tabelul de mai jos în ordine alfabetică



În tabelul următor vom prezenta o listă a cuvintelor rezervate grupate după categorie:


După cum am menționat cuvintele rezervate au semnificație specială pentru compilatorul Java, de aceea la folosirea lor se va ține cont de următoarele reguli:

  • const și goto sunt cuvinte rezervate ce nu se mai folosesc;
  • true, false și null sunt literali nu cuvinte rezervate;
  • toate cuvintele rezervate sunt compuse din litere mici;
Literali

Reprezintă valori constante de diferite tipuri de date primitive (întreg, caracter etc).

Separatori

Sunt utilizați pentru a separa unitățile lexicale unele de altele. Aceștia sunt: ( ) { } [ ] ; , .

Numere

Reprezintă valori numerice, întregi sau reale.

Exemple: 10, -25, 3.14.

Șiruri de caractere

Secvențe de caractere delimitate între ghilimele.

Exemple:
"Bună ziua!", "Hello World".

Comentarii

Comentariile nu reprezintă rânduri de cod sursă. Acestea nu sunt executate de către compilator. Acestea oferă informații programatorului astfel încât programul să fie ușor de înțeles și menținut. Orice program Java începe cu un scurt comentariu ce oferă o informație relevantă despre clasa creată. De obicei acesta arată în felul următor:


/* Acesta este un comentariu de mai multe linii
Filename: Denumirea programului
Version:
Created by: Numele programatorului
Created on: Data creării
Updated on: Data modificării
Comment: Descrierea generală a destinației programului
*/

În Java pute m folosi modalitățile de mai jos pentru a adăuga comentarii în codul sursă:

/* comentariu de o linie */
//alt comentariu de o linie
/* comentariu de mai
/* multe linii */


Operatori

Operatorii sunt utilizați pentru a exprima diferite formule elementare de calcul sau prelucrare a informației și sunt folosiți alături de literali, variabile, apeluri de metode şi alte expresii. Operatorii se pot clasifica în următoarele categorii:

  • Operatori aritmetici (+, -, *, /, %, ++, --)
  • Operatori relaționali sau de comparație (<=, ==, >=, >, !=)
  • Operatori booleeni (&&, ||, !, &, !, ^, |, &)
  • Operatori la nivel de bit (&, |, ^, ~, <>, >>>)
  • Operatorul de concatenare a String-urilor (+)
  • Operatori de atribuire (=, +=, -=, *=, ...)
  • Operatorul de conversie explicită ( (tip_date) )
  • Operatori speciali (instanceof , ternar)

Operatorul ternar are următoarea formă generală: boolean_exp ? value0 : value1. Dacă boolean_exp are valoarea true atunci value0 este valoarea returnată de operație. Invers, dacă boolean_exp este false, value1 este cea returnată.

De exemplu:

int a;
boolean cond=true; a=cond ? 5 : 6; //a va primi valoarea 5
cond=false; a=cond ? 5 : 6; //a va primi valoarea 6

Operatorul instanceof este folosit pentru a testa dacă un obiect este de o anumită clasă sau nu. Forma generală este: object instanceof className
Returnează true dacă obiectul object este de clasă className sau de o clasă derivată din aceasta şi false dacă nu. De exemplu:

Random rand = new Random ( );
boolean cond;
cond = rand instanceof Random; //cond va primi valoarea true


Să aveți o zi deosebită!
💝

Curiozități despre limbajul de programare Java

Știați că:

  • în prezent, Netflix este una dintre cele mai cunoscute și mai mari platforme de divertisment din întreaga lume, oferind filme și seriale TV prin streaming media. Și majoritatea aplicațiilor Netflix folosesc Java (cu puțin C++)?
  • în Java, NASA a creat aplicația Word Wind care are un glob virtual 3D și afișează date geografice? Programul folosește imagini aeriene de la sateliți pentru a construi modele 3D ale planetelor. Cel mai important, este un software open-source și, deoarece este scris în Java, acceptă orice SO.
  • jocul extrem de popular, Minecraft, a fost inițial scris în Java? Chiar dacă o parte din el a fost transformată în cod nativ pentru performanță, multe părți ale Minecraft rămân scrise în Java.
  • anumite componente ale infrastructurii Twitter au fost construite în Java, inclusiv unele servicii și sisteme de gestionare a datelor?
  • o parte din infrastructura și funcționalitățile din spatele aplicației Google Docs sunt construite folosind Java?
  • unele aplicații Java sunt utilizate pentru vizualizarea și procesarea imaginilor medicale, precum tomografii computerizate (CT), imagistica prin rezonanță magnetică (MRI) sau imagini radiologice?
  • Aveți posibilitatea cu o conexiune la Internet să rulați compilatoare Java online? Desigur ca au unele limitări, dar pot fi o soluție bine venită la un moment dat. Iată câteva exemple de compilatoare Java online:

    -       https://www.onlinegdb.com/

    -       https://www.jdoodle.com/online-java-compiler  

    -       https://www.compilejava.net/