joi, 21 august 2025

Limbajul de programare Java


Un limbaj de programare de nivel înalt complet orientat spre obiecte este limbajul Java, un limbaj actual cu o popularitate imensă. Inițial a fost numit OAK dezvoltat de compania JavaSoft, de către James Gosling, în cadrul firmei SunMicrosystems, în 1995. În 2010, Oracle a achiziționat Sun Microsystems și a preluat toate produsele și tehnologiile acestora, inclusiv Java.

Limbajul Java este versatil și poate fi folosit pentru dezvoltarea unei game variate de aplicații, inclusiv:

  • Aplicații desktop: Java poate fi utilizat pentru crearea de aplicații desktop cu interfețe grafice. AWT (Abstract Window Toolkit) și Swing sunt două biblioteci Java populare pentru dezvoltarea interfețelor grafice.
  • Aplicații web: Java este folosit în dezvoltarea de aplicații web, fie prin intermediul servletelelor (clase Java care extind capacitățile serverului web pentru a gestiona cereri și răspunsuri HTTP) sau prin folosirea framework-urilor precum Spring, Java Server Faces (JSF) sau Play Framework.
  • Aplicații mobile: Dezvoltarea de aplicații mobile Android se face adesea în Java, utilizând Android SDK și Android Studio.
  • Servicii web: Java este folosit pentru crearea de servicii web, atât pentru dezvoltarea API-urilor (Application Programming Interface), cât și pentru implementarea serverelor care gestionează cererile și oferă răspunsuri.
  • Baze de date: Există numeroase biblioteci și framework-uri Java care facilitează interacțiunea cu bazele de date, cum ar fi JDBC (Java Database Connectivity), Spring Data, Hibernate, permițând dezvoltatorilor să creeze aplicații care interacționează eficient cu diferite sisteme de gestiune a bazelor de date.
  • Aplicații pentru Internetul lucrurilor (IoT): Java este utilizat în dezvoltarea aplicațiilor pentru IoT datorită capacității sale de a gestiona diverse dispozitive și comunicații.

Sunt furnizate 4 platforme Java de către Oracle:

  • Java SE (Standard Edition). Platforma de bază a limbajului ce oferă un set de biblioteci și instrumente (JDK, JRE) pentru dezvoltarea aplicațiilor desktop și generale.
  • Java EE (Enterprise Edition). Extensie a Java SE pentru aplicații web și enterprise complexe; acum evoluează sub denumirea Jakarta EE, sub egida Eclipse Foundation.
  • Java ME (Micro Edition). Destinată aplicațiilor pe telefoane mobile (feature phones) și dispozitive IoT cu resurse limitate; astăzi are o utilizare redusă.
  • JavaFX. Platformă pentru construirea de aplicații GUI (Graphical User Interface) și aplicații web bogate, RIA (Rich Internet Applications). A fost integrată în Java SE până la JDK 8, iar din JDK 11 este dezvoltată separat ca OpenJFX. 
  • GraalVM.  Este un runtime poliglot dezvoltat de Oracle care poate rula cod Java, JavaScript, Python și altele, cu performanță îmbunătățită și posibilitatea de a genera aplicații native. Practic, cu un runtime poliglot poți să ai componente scrise în limbaje diferite într-o singură aplicație și să le faci să comunice între ele eficient, fără a fi nevoie de un alt runtime separat pentru fiecare limbaj.
  • J2ME Embedded – o variantă a Java ME pentru sisteme încorporate (embedded devices). Sisteme încorporate sunt dispozitive care au un calculator integrat pentru a controla funcții specifice, dar nu sunt calculatoare generale. De exemplu electrocasnice inteigente, calculatoare inteligente, etc
  • Java Card – platformă pentru carduri inteligente și dispozitive securizate, cum ar fi SIM-uri sau carduri bancare.

  • JavaFX Mobile – o versiune a JavaFX pentru aplicații mobile (mai mult experimental și învechit).

Limbajul Java este definit de următoarele caracteristici principale:

  • Portabilitate. Datorită mașinii virtuale Java (JVM), Java este un limbaj independent de platforma de lucru, ceea ce înseamnă că aceeași aplicație rulează fără nici o modificare pe sisteme diferite cum ar fi Windows, Linux, ș.a, fapt ce aduce economii substanțiale companiilor. Sloganul de bază fiind ,,Write once, run anywhere”.
  • Orientat pe obiecte. Java este un limbaj de programare orientat pe obiecte, în care totul este tratat ca un obiect, facilitând astfel structurarea și organizarea codului.
  • Sintaxă simplă și familiară. Sintaxa Java este similară cu cea a altor limbaje precum C++ sau C#, ceea ce face mai ușoară învățarea pentru cei care au experiență cu alte limbaje. Caracteristicile ca moștenirea multiplă, șabloanele, întâlnite în alte limbaje de programare au fost eliminate.
  • Securitate: Java are un sistem puternic de securitate integrat care protejează împotriva executării de cod rău intenționat.
  • Gestionarea automată a memoriei. Java are un sistem de gestionare automată a memoriei prin colectarea de gunoi (Garbage Collector), eliminând necesitatea dezvoltatorului de a gestiona manual memoria.
  • Bibliotecă extinsă. Include o bibliotecă standard (Java Standard Library) bogată, care oferă funcționalități pentru diverse sarcini, cum ar fi lucrul cu fișiere, rețele, criptografie, interfețe grafice etc.
  • Multi-threading. Suportă programarea multi-threading, permițând executarea simultană a mai multor fire de execuție în cadrul unei aplicații.
Aceste caracteristici sunt doar câteva dintre motivele pentru care Java este adesea alegerea preferată în dezvoltarea de software, în special pentru aplicații mari și complexe. Flexibilitatea, portabilitatea și securitatea sa sunt aspecte cheie care îl fac să fie utilizat într-o gamă largă de domenii și aplicații.

Limbajul Java este definit de următoarele caracteristici principale:

Pentru a dezvolta programe Java este nevoie de următoarele resurse:

  • JDK (Java Development Kit)[1] ce include setul de aplicații necesare dezvoltării programelor Java.
  • Editor de cod performant ca de exemplu NetBeans[2], Eclipse[3], Intellij IDEA[4], ș.a.

luni, 18 august 2025

Lecție practică. Instrucțiunea switch

  1. Planificator de activități zilnice. Scrieți un program care cu ajutorul instrucțiunii switch va afișa o activitate în funcție de ziua săptămânii.  De la tastatură se va citi o zi a săptămânii (ex: „Luni”, „Simbata”) și se va afișa activitatea corespunzătoare, de exemplu:

-        „Luni – Încep școala cu energie”,

-        „Sâmbătă – Merg în parc”,

-        „Duminică – Odihnă și planificare”, etc.


2.  Meniu pentru cafenea digitală.  Scrieți un program care citește de la tastatură o alegere numerică între 1 și 4:

-        1 – Cafea

-        2 – Ceai

-        3 – Ciocolată caldă

-        4 – Apă

Programul va afișa prețul băuturii selectate. Dacă utilizatorul introduce o opțiune invalidă, afișează „Opțiune inexistentă”. Utilizați switch cu default.


3.   Meteo. Scrieți un program care va citi de la tastatură starea vremii („soare”, „ploaie”, „ninsoare”, „vânt”) după care va afișa mesajul potrivit:

-        Dacă e „ploaie” sau „ninsoare” – „Ia umbrelă sau haină impermeabilă.”

-        Dacă e „soare” – „Poartă ochelari de soare.”

-        Dacă e „vânt” – „Verifică prognoza, poate fi furtună.”

Utilizați switch cu selector de tip String și mai multor etichete case pentru același rezultat.


4.  Beneficii abonamente. Scrieți un program care citește de la tastatură un tip de abonament introdus de utilizator ("Free", "Standard", "Premium") și afișează ce beneficii are abonamentul citit:

-        Free – acces limitat;

-        Standard – acces la toate cursurile;

-        Premium – acces complet + certificate.

Programați și cazul în care utilizatorul introduce un abonament necunoscut.


5.   Reducere la cumpărături. Scrieți un program care citește de la tastatură categoria clientului ("elev", "student", "profesor", "pensionar", sau altă categorie) și suma totală a cumpărăturilor. Programul va afișa procentul de reducere corespunzător și suma finală care trebuie achitată după aplicarea reducerii.

Reduceri:

-      Elev: 25%

-      Student: 15%

-      Profesor: 10%

-      Pensionar: 20%

-      alte categorii: 0%


6.     Planificator inteligent. Scrieți un program care citește de la tastatură ora curentă (număr între 0 și 23). În funcție de intervalul orei, programul afișează o activitate recomandată:

Interval orar

Activitate recomandată

6–8

„Trezire și mic dejun”

9–13

„Cursuri / lucru activ”

14–17

„Proiecte și exerciții practice”

18–21

„Relaxare sau activități fizice”

22–23, 0–5

„Timp de odihnă”

Creează un switch care grupează cazurile folosind mai multe valori case per bloc. Dacă ora introdusă este invalidă (negativă sau > 23), afișează un mesaj de eroare.


7.  Curier Express. Scrieți un program care citește de la tastatură tipul localității: "urban", "suburban", "rural" și greutatea coletului în kilograme. Programul va calcula și afișa: tipul livrării, costul total, un mesaj personalizat: „Mulțumim pentru alegerea serviciului nostru!”. Se cunoaște că taxele de livrare sunt următoarele:

-      Urban: 20 lei + 2 lei/kg

-      Suburban: 30 lei + 2.5 lei/kg

-      Rural: 40 lei + 3 lei/kg


8.   Convertor zile în activități zilnice. Scrieți un program care citește de la tastatură un număr întreg zi (1–7) și o perioadă a zilei: M (dimineața), P (după-amiaza), S (seara). Folosind switch pentru ziua săptămânii și, dacă e necesar, pe perioadă, se afișează activitatea recomandată:

Dimineața

După-amiaza

Seara

„Școală / muncă”

„Proiecte / teme”

„Relaxare”

„Sport / hobby”

„Vizită prieteni”

„Film / relaxare”

„Odihnă”

„Planificare săptămână”

„Odihnă”

De exemplu pentru Zi: 6 și Perioada: P se va afișa Activitate recomandată: Vizită prieteni.

Dacă ziua sau perioada introdusă este invalidă, se va afișa mesaj de eroare.


9.  Restaurant digital. Un restaurant digital recomandă meniuri în funcție de tipul clientului și nivelul de activitate fizică:

-      Tip client: "adult", "copil", "senior"

-      Activitate fizică: "scăzută", "moderată", "ridicată"

-      Valori calorice recomandate:

Tip client

Scăzută

Moderată

Ridicată

adult

1800

2200

2500

copil

1200

1500

1800

senior

1500

1800

2000

Elaborați un program care, folosind instrucțiunea switch, va citi de la tastatură tipul clientului și activitatea fizică și va recomanda câte calorii trebuie să conțină meniul acestuia. De exemplu pentru datele de intrare Tip: adult și Activitate: moderată se va afișa  Calorii recomandate: 2200 kcal.


10. Calculator de prețuri cu TVA diferențiat. Un magazin vinde produse din mai multe categorii, fiecare cu un TVA diferit:

-      "alimentar" → 5% TVA

-      "electronice" → 19% TVA

-      "haine" → 9% TVA

-      "carte" → 5% TVA

Elaborați un program care va citi categoria produsului și prețul fără TVA. Folosind instrucțiunea  switch programul va determina  TVA-ul și va calcula și afișa prețul final cu TVA. Dacă categoria introdusă nu există, afișează „Categorie invalidă”. De exemplu, pentru datele de intrare Categorie: electronice și Preț: 1000 se va afișa TVA: 19%  Preț final: 1190.0 lei.


11. Calcularea tarifelor dinamice pentru transport urban. Un sistem de transport urban calculează tariful biletelor în funcție de:

-      Categoria pasagerului: "adult", "elev", "student", "pensionar"

-      Tipul transportului: "autobuz", "troleibuz", "tramvai", "metrou"

-      Zona de deplasare: 1, 2 sau 3

Tarife de bază per categorie și tip transport: 

Categorie

Autobuz

Troleibuz

Tramvai

Metrou

adult

4

4

5

6

elev

2

2

2.5

3

student

3

3

3.5

4

pensionar

1.5

1.5

2

2.5

Dacă zona de deplasare este mai mare decât valoarea 1, se aplică un adaos de 1.5 lei per zonă suplimentară.

Dacă tipul de transport sau categoria este invalid, se afișează mesaj de eroare.

De exemplu pentru datele de intrare Categorie: adult Transport: tramvai  Zona: 2 se va afișa Tarif final: 6.5 lei

 

 

Să aveți o zi deosebită! 

❤️