luni, 1 septembrie 2025

Structura lexicală a limbajului Java

  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 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.

Anumite caractere sunt reprezentate prin secvențe escape speciale:

            \n - linie noua

            \b - backspace

            \t -  tab

            \\ -  backslash

            \” - ghilimele

            \’ -  apostrof

 

Adăugător despre secvențele Escape: https://www.javatpoint.com/java-escape-characters


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 nullfalsetrue.
  • ș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ă (exsetezCuloare());
  • identificatorii de constante se scriu cu majuscule (ex. PI_VALOARE);

abstract

assert

boolean

break

byte

case

catch

char

class

const

continue

default

do

double

else

enum

extends

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

short

static

strictfp

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

 

 

 

 


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:

Categorie

Cuvânt rezervat

Modificatori de acces

private, public, protected

Modificatori de clasă, metodă și variabilă

abstract, class, extends, final, implements, new, interface, native, static, strictfp, synchronized, transient, volatile

Controlul execuției

break, case, continue, default, do, else, for, if, instanceof, return, switch, while

Lucru cu pachetele

import, package

Tipuri de date primitive

boolean, byte, char, double, float, int, long,short

Tratarea erorilor

assert, catch, finally, throw, throws, try

Enumerare

enum

Alte

super, this, void

Nefolosite

const, goto


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;

§  truefalse ș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: ( ) { } [ ] ; , .

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 putem 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 */

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?

Citirea datelor de intrare de la consolă

  

Java folosește System.out pentru a se referi la un dispozitiv standard de ieșire a datelor, care este monitorul,  și System.in pentru dispozitiv standard de intrare a datelor, care este tastatura.

Pentru a afișa valori de tip String sau primitive în consolă se va utiliza metoda println().

În Java, System.out se referă la dispozitivul standard de ieșire (monitorul), iar System.in la dispozitivul standard de intrare (tastatura).

Pentru a afișa valori de tip String sau tipuri primitive în consolă, se folosește metoda println().

Java nu oferă direct posibilitatea de a citi date de la tastatură, dar acest lucru se poate realiza prin clasa Scanner. Crearea unui obiect Scanner se face astfel:

Scanner input = new Scanner(System.in);

Sintaxa new Scanner(System.in) crează un obiect de tip Scanner, iar sintaxa Scanner input declară că input este o variabilă de tip Scanner. Întreaga linie Scanner input = new Scanner(System.in); crează un obiect de tip Scanner căruia îi atribuie o referință la variabila input. Obiectul input  va putea invoca toate metodele clasei Scanner pentru a citi valori de diverse tipuri:

Metodă

Descriere

nextByte()

Citește un întreg de tip byte

nextShort()

Citește un întreg de tip short

nextInt()

Citește un întreg de tip int

nextLong()

Citește un întreg de tip long

nextFloat()

Citește un număr de tip float

nextDouble()

Citește un număr de tip double

next()

Citește un șir de caractere care finisează pînă la spațiu

nextLine()

Citește o linie de text, adică un șir de caractere care finisează cu tasta Enter.

 

Clasa Scanner se află în pachetul java.util, de aceea trebuie importată înainte de a fi utilizată într-o clasă:

import java.util.Scanner;

Pe lângă citirea datelor de la tastatură, clasa Scanner permite și citirea datelor din fișiere – aspect pe care îl vom detalia într-o lecție ulterioară.

La instanțiere, obiectul Scanner creează un flux de intrare a datelor. Acest flux rămâne deschis și folosește resursele sistemului până când se apelează metoda close(). Dacă aplicația Java este închisă, toate fluxurile deschise sunt închise automat.


Exemplu fără utilizarea clasei Scanner

Exemplu cu utilizarea clasei Scanner

 

public class exeggyhjj {

 public static void main(String[] args) {

       double nr1 = 11;

       double nr2 = 12;

       double nr3 = 13;    

       double medie = (nr1 + nr2 + nr3)/3;

       System.out.println("Media numerelor " + nr1 + " " + nr2 + " " + nr3 + " = " + medie);

 }

}

import java.util.*;

public class exeggyhjj {

 public static void main(String[] args) {

Scanner citeste = new Scanner(System.in);

System.out.print("Introduceti 3 numere:");

       double nr1 = citeste.nextDouble();

       double nr2 = citeste.nextDouble();

       double nr3 = citeste.nextDouble();

      double medie = (nr1 + nr2 + nr3)/3;

       System.out.println("Media numerelor " + nr1 + " " + nr2 + " " + nr3 + " = " + medie);

citeste.close();

 }

}

 

 

 

 

 

 


Să aveți o zi deosebită! 

💝