Modulul 1: LIMBAJUL JAVA (3 zile)
[1] Introducere in OOP
- Scurt istoric OOP
- Principii de baza
- Fundamentele programarii OOP
[2] Obiecte
- Referinte, Primitive, Siruri (Arrays), Structura unei clase Java,
- Specificatori de acces, Documentarea codului Java
[3] Controlul executiei programelor Java
- if/else
- for/while/do loops
- switch
- Comparatii
- metoda equal() si prietenii (hashCode :-) )
[4] Initializare si Dezalocare
- Constructori
- Variabile locale
- Campuri
- Garbage Collection
- Supraincarea metodelor
- Cuvantul cheie this
[5] Mecanisme de Incapsulare (ascundere a detaliilor de implementare)
- Pachete
- Librarii
- Classpath
- Specificatori de acces
[6] Mecanisme de reutilizarea a claselor
- Compozitie
- Mostenire
- Initializare
- Cuvantul cheie final
- Incarcatoare de clase
[7] Polimorfism
- Principiul substituirii
- Extensibilitate
- Upcasting
- Suprascrierea metodelor
- Cuvantul cheie abstract
- Constructori (utilizarea super)
- Polimorfism
- Bune practici (evitarea folosirii instructiunii switch)
[8] Interfete si Clase Interne
- Interfete
- Clase interne
- Declararea de constante in interfete
- Clase interne anonime
- Sablonul de design NullObject
[9] Tratarea Erorilor in programele Java
- try/catch/finally
- Ierarhii de exceptii
- Tratarea globala a exceptiilor
Modulul 2: API-uri de baza in Java (2 zile)
[1] Colectii
- Siruri (Arrays)
- Sortarea elementelor unei colectii
- Tipuri de colectii (List, Map, Set)
- Generice
- Iteratori
- Mecanisme de hashing
- Bune practici (Criterii de alegere a unei colectii in functie de context. Performanta)
[2] Fire de executie
- Introducere in calcul paralel
- Clasa Thread si interfata Runnable
- Sincronizare (Starvation, dead locking, semafoare)
- Clasele din java.util.concurrent
- Bune practici (Cand si cum sa sincronizam, clase thread-safe)
[3] Java I/O
- Fluxuri I/O de Octeti
- Fluxuri I/O de Obiecte
- Obiecte I/O Pentru scrierea si citirea de text (i.e obiecte de tip Reader/Writer)
- Citirea de la consola
- Mecanisme de compresie
- Mecanismul de serializare a obiectelor in Java
- Scrierea de decoratori personalizati I/O
- Bune practici (Alocare/Dezalocare, Tratarea exceptiilor)
[4] Conectarea la baze de date cu ajutorul JDBC
- Prezentarea generala a JDBC, ce anume doreste sa rezolve.
- Clasele de baza
Connection, (Prepared)Statement, ResultSet - DataSource (pooling de conexiuni) vs Connection
- Bune practici (Alocare/Dezalocare conexiuni)