Section : Structura cursului (cu Java) | AI.PIP21.1 Programare independentă de platformă | ELSE
-
-
-
Les étudiants doiventMarquer comme terminéCuprins
T1. Introducere & ecosistemul Java
Obiective- înțelegerea principiului „write once, run anywhere” și rolul JVM;
- identificarea componentelor JDK/JRE și a fluxului de build & run;
- configurarea mediului (JDK, IDE, CLI) și rularea primului program;
- cunoașterea versiunilor LTS și a managementului de versiuni.
Cuvinte-cheie: JDK JRE JVM Bytecode JIT LTS CLI IDEJDK: kitul pentru dezvoltatori (includejavac, instrumente și biblioteci).JRE: mediul de rulare (JVM + biblioteci) necesar execuției.JVM: mașina virtuală care execută bytecode pe orice platformă.Bytecode: cod intermediar generat dejavac, portabil.JIT: compilare „Just-In-Time” pentru secvențe frecvente, crește performanța.LTS: versiuni cu suport extins (ex.: 8, 11, 17, 21).CLI: linie de comandă pentru build/rulare scriptată.IDE: medii integrate (IntelliJ, Eclipse, VS Code) cu editor și debug.T2. Structura lexicală a limbajului Java
Obiective- recunoașterea tokenilor: identificatori, cuvinte-cheie, literali, operatori;
- aplicarea regulilor de denumire (camelCase, PascalCase);
- utilizarea corectă a separatoarelor și a comentariilor;
- înțelegerea rolului spațiilor albe în parsing.
Cuvinte-cheie: Identificator Literal Operator Separator Comentariu CamelCase Cuvânt-cheieIdentificator: nume pentru clase/metode/variabile; nu începe cu cifră.Literal: valoare scrisă direct (numerică, booleană, caracter, șir,null).Operator: simbol al unei operații (aritmetică, logică, relațională).Separator: semne de punctuație:;,,,(),{}etc.Comentariu://linie,/* */bloc,/** */Javadoc.CamelCase: prima literă mică, cuvintele interne capitalizate.Cuvânt-cheie: termen rezervat (ex.:class,if,return).T3. Tipuri de date. Controlul execuției. Vectori
Obiective- clasificarea tipurilor primare și de referință;
- utilizarea structurilor de control (
if,switch, bucle); - inițializarea și parcurgerea vectorilor 1D/2D;
- gestionarea conversiilor (widening/narrowing) și autoboxing;
- aplicarea scurtcircuitării logice.
Cuvinte-cheie: Primitive Referință Autoboxing Switch For-each Array 2D Short-circuitPrimitive:byte,short,int,long,float,double,char,boolean.Referință: obiecte și tablouri; variabila stochează o adresă din heap.Autoboxing: conversie automată între primitive și tipurile wrapper.Switch: selecție multiplă (inclusiv peString).For-each: parcurgere simplificată pentru colecții/tablouri.Array 2D: tablouri de tablouri (matrici), inclusiv neregulate (jagged).Short-circuit: evaluare parțială la&&și||.T4. Obiecte și clase în Java. Organizarea claselor
Obiective- definirea claselor cu câmpuri, constructori și metode;
- aplicarea încapsulării și a modificatorilor de acces;
- utilizarea moștenirii și a polimorfismului;
- organizarea pe pachete și convenții de proiect;
- implementarea
toString(),equals(),hashCode().
Cuvinte-cheie: Clasă Obiect Încapsulare Moștenire Polimorfism Pachet ConstructorClasă: șablon pentru structură (câmpuri) și comportament (metode).Obiect: instanță creată cunewsau fabrici.Încapsulare: ascunderea detaliilor interne și expunere controlată (gettere/settere).Moștenire: relație is-a pentru reutilizare/extindere.Polimorfism: comportamente diferite prin aceeași interfață.Pachet: grupare logică de clase; ajută la organizare și controlul accesului.Constructor: inițializează obiectul; poate fi supraîncărcat.T5. Interfața grafică cu utilizatorul
Obiective- înțelegerea AWT/Swing/JavaFX;
- gestionarea evenimentelor și a firului UI;
- utilizarea layout-urilor și a componentelor de bază;
- separarea prezentării (MVC simplificat);
- crearea unei ferestre simple cu interacțiuni.
Cuvinte-cheie: Swing JavaFX Event handling Layout Thread UI MVCSwing: toolkit GUI bazat pe AWT; componente ușoare, portabile.JavaFX: framework modern (scene graph, FXML, stilizare de tip CSS).Event handling: model ascultător/observator pentru click/tastatură.Layout: BorderLayout, Grid, VBox/HBox etc., pentru aranjarea componentelor.Thread UI: fir dedicat actualizărilor vizuale; evită blocările.MVC: separare Model-View-Controller pentru claritate și testabilitate.T6. Fire de execuție
Obiective- crearea și pornirea firelor (
Thread,Runnable); - sincronizare și probleme de concurență;
- utilizarea executors și thread pools;
- gestionarea întreruperilor și a ciclului de viață;
- evitarea condițiilor de cursă și a deadlock-urilor.
Cuvinte-cheie: Thread Runnable Synchronized Volatile Executor Deadlock Race conditionThread: unitate de execuție concurentă.Runnable: interfață ce furnizează logica executabilă unui fir.Synchronized: control pentru acces exclusiv la resurse partajate.Volatile: garantează vizibilitatea scrierilor între fire.Executor: abstractizează crearea/gestionarea firelor (pool-uri).Deadlock: blocaj reciproc între fire.Race condition: rezultate nedeterminate din intercalări necontrolate.T7. Programare în rețea
Obiective- modelul client–server și protocoalele TCP/UDP;
- comunicare cu socket-uri;
- I/O blocant vs. non-blocant (NIO);
- serializarea datelor pentru transport;
- gestionarea erorilor și timeout-urilor.
Cuvinte-cheie: Socket ServerSocket TCP UDP NIO Serialization TimeoutSocket: capăt de conexiune pe client.ServerSocket: ascultă conexiuni de la clienți (TCP).TCP: protocol orientat pe conexiune, fiabil și ordonat.UDP: protocol fără conexiune, rapid, fără garanții.NIO: API pentru I/O non-blocant (canale + buffere).Serialization: transformarea obiectelor în flux de octeți.Timeout: limită de timp pentru operații de rețea.T8. Lucrul cu baza de date
Obiective- conectarea la DB prin JDBC și executarea interogărilor;
- mapare obiect-relațională (JPA/Hibernate);
- gestionarea tranzacțiilor și a conexiunilor;
- prevenirea SQL Injection (prepared statements);
- modelarea simplă a schemelor și relațiilor.
Cuvinte-cheie: JDBC Driver PreparedStatement ResultSet Transaction JPA HibernateJDBC: API standard pentru conectare/lucru cu DB.Driver: adaptor specific (ex.: PostgreSQL, MySQL) pentru JDBC.PreparedStatement: interogare parametrizată, sigură și eficientă.ResultSet: cursor peste rezultatele unei interogări.Transaction: grup de operații cu garanții ACID.JPA: specificație ORM pentru mapare obiect-relațională.Hibernate: implementare JPA cu HQL și caching.T9. Lucrul dinamic cu clase
Obiective- inspectarea tipurilor la rulare cu Reflection API;
- încărcare dinamică de clase cu
ClassLoader; - invocare de metode și acces la câmpuri dinamic;
- utilizarea adnotărilor (annotations) și meta-informației;
- înțelegerea riscurilor și costurilor de performanță.
Cuvinte-cheie: Reflection ClassLoader Annotation Method Field Proxy Security managerReflection: interogarea/manipularea tipurilor/obiectelor la runtime.ClassLoader: mecanismul JVM care încarcă bytecode în memorie.Annotation: meta-date atașate tipurilor/membrilor; procesabile la runtime/compile-time.Method: reprezentare reflectivă a unei metode pentru invocare dinamică.Field: reprezentare reflectivă a unui câmp; permite citire/scriere.Proxy: obiect dinamic care interceptează apeluri către o interfață.Security manager: control al permisiunilor (depreciat în versiunile recente).
-
