Documente Academic
Documente Profesional
Documente Cultură
1 / 102
manipularea tipurilor generice reprezint cel mai nalt nivel de abstractizare i dinamic n crearea unei arhitecturi de
clas a programului arhitectur care s fie orientat pe obiect
2 / 102
3 / 102
4 / 102
5 / 102
6 / 102
7 / 102
8 / 102
9 / 102
10 / 102
11 / 102
12 / 102
13 / 102
14 / 102
15 / 102
16 / 102
17 / 102
18 / 102
19 / 102
20 / 102
21 / 102
22 / 102
23 / 102
24 / 102
25 / 102
26 / 102
27 / 102
28 / 102
29 / 102
30 / 102
31 / 102
32 / 102
33 / 102
34 / 102
35 / 102
36 / 102
37 / 102
38 / 102
39 / 102
40 / 102
41 / 102
42 / 102
43 / 102
44 / 102
45 / 102
46 / 102
47 / 102
48 / 102
49 / 102
50 / 102
51 / 102
52 / 102
53 / 102
54 / 102
55 / 102
56 / 102
57 / 102
58 / 102
59 / 102
60 / 102
61 / 102
62 / 102
63 / 102
64 / 102
65 / 102
66 / 102
67 / 102
68 / 102
69 / 102
70 / 102
71 / 102
72 / 102
73 / 102
74 / 102
75 / 102
76 / 102
77 / 102
78 / 102
79 / 102
80 / 102
81 / 102
82 / 102
83 / 102
84 / 102
85 / 102
86 / 102
87 / 102
88 / 102
89 / 102
90 / 102
manipularea tipurilor generice reprezint cel mai nalt nivel de abstractizare i dinamic n proiectarea orientat pe
obiecte, programul de arhitectur de clas
tipurile generice se realizeaz prin specificarea tipului de date ca o clas parametru
denumirile tipurilor se pun n cadrul parantezelor! !! ss ww!
operatorul diamond (! ss!! ww!) elimin necesitatea de specificare explicit a tipului argumentului n apelul
constructorului tipurilor generice
simbolul wildcard se marcheaz cu caracterul semnului de ntrebare (?) i reprezint un tip necunoscut
2. Reflexia
capacitatea limbajului de programare de a manipula arhitectura claselor n timpul executrii programului se numete
reflexie
n limbajul de programare Java funcionalitatea reflexiei se afl n pachetul java.lang.reflect
clasa Class se utilizeaz pentru a reprezenta clase concrete
clasa Field reprezint cmpul clasei, clasa Method reprezint metodele n timp ce clasa Parametar reprezint
parametrii metodei
3. Evenimente
programarea care include monitorizarea i manipularea evenimentelor n timpul executrii aplicaiei se numete
programare Event Based
n Java, clasa de baz care reprezint un eveniment este EventObject
pentru a crea un eveniment funcional, mai nti crem clasa Event
alt element n crearea obiectului este crearea interfeei Listener
interfaa Listener trebuie s fie implementat de ctre clasa Listener
91 / 102
ultimul pas n manipularea evenimentelor este crearea clasei principale, respectiv generatorul evenimentelor
4. Expresii regulate
expresiile regulate reprezint un mod de definire a unui set de caractere cu care se formeaz aa-numitul ablon
pentru crearea expresiilor regulate este necesar stpnirea sintaxei expresiilor regulate
clasele care se declar independent, n afara oricrei alte clase, sunt cunoscute i ca clase de nivel nalt (top-level
classes)
n limbajul de programare Java putem crea o clas care se afl n cadrul altei clase; astfel de clase sunt numite clase
imbricate
clasele imbricate statice reprezint membri ai clasei n care sunt definite i pot fi instaniate fr o instaniere
prealabil; aceste clase nu au acces la membrii clasei n care sunt definite
clasele nestatice imbricate sau clasele interioare reprezint membri nestatici ai clasei n care se afl i obiectele acestor
clase exist numai n cadrul obiectelor clasei n care se afl; aceste clase au acces la membrii clasei n care se afl;
clasele locale sunt clasele definite n cadrul blocului; de cele mai multe ori, aceste clase se afl n cadrul corpului
metodei
clasele anonime sunt clasele fr nume; ele permit ca declararea i instanierea s fie fcute n cadrul unei structuri
expresiile lambda permit o reprezentare precis i clar a interfeei cu o singur metod ca expresie; reprezint un
substitut pentru clasele anonime cu o singur metod
6. abloane de proiectare
92 / 102
93 / 102
baza de date (database sau prescurtat db) reprezint o colecie organizat de date
bazele de date sunt manipulate cu sistemele de manipulare a bazelor de date (database management system) sau
prescurtat DBMS
ncepnd cu ediia 6, Java vine cu un sistem integrat de manipulare a bazelor de date: Java DB
MySQL este o baz de date multirelaional, foarte popular n diferite domenii de programare
pentru a gestiona baza de date MySQL, folosim MySQL connector/JDBC
pentru a defini interogri SQL, putem utiliza interfaa Statement
pentru a defini o interogare cu parametri dinamici, putem folosi interfaa PreparedStatement
interfaa CallableStatement este folosit pentru a apela procedura stored
94 / 102
3. Manipularea reelei
9. Introducere n protocoalele de reea Internet
protocolul de reea este un set de reguli care permite comunicarea ntre dou calculatoare conectate
o clasificare pe Internet n straturi care include patru straturi: Link, Internet, Transport i Application
protocolul TCP este protocolul pentru lucru ntr-un mediu conectat care este caracterizat printr-un grad nalt de
fiabilitate i o garanie de livrare de pachete
protocolul UDP nu necesit o conexiune persistent ntre end point-urile comunicrii. Acest protocol este rapid i
eficient, dar nu foarte sigur din punct de vedere al integritii datelor, deoarece nu garanteaz livrarea pachetelor
socket reprezint un endpoint n comunicarea ntre cele dou procese care este definit de adresa IP i numrul de
porturi
conectarea la protocolul TCP este bidirecional i sincronizat i necesit dou pri: client i server
serverul are rol de asculttor care monitorizeaz toate activitile pe un port dat i dup ce activitatea a avut loc,
serverul iniializeaz Socket-ul i execut activitile definite
clientul iniializeaz comunicarea cu serverul i dup ce i transmite cererea, ateapt de la server un rspuns cu care
se stabilete schimbul reciproc de informaii
pentru a crea un server socket se folosete clasa ServerSocket, iar pentru crearea unui client socket se folosete clasa
Socket
95 / 102
putem fi complet siguri c va ajunge acolo unde trebuie i c va conine tot ce am trimis n el
n Java pentru lucrul cu UDP exist dou clase: DatagramSocket i DatagramPacket
DatagramSocket este clasa care ascult i ateapt pachetele UDP
DatagramPacketreprezint nsui mesajul UDP i instana acestei clase este obiectul care se folosete pentru
reprezentarea mesajelor care intr i ies
Hyper Text Transfer Protocol este un protocol de cel mai nalt nivel (Application) care se poate folosi pentru schimbul
de orice tip de informaii ntre diferite tipuri de aplicaii, dar principala sa menire este schimbul de informaii n
aplicaiile web
partea principal a cererii este linia cererii (Request Line) care conine metoda HTTP, documentul i versiunea
protocolului HTTP folosit
n cadrul rspunsului serverului exist statusul rspunsului pe baza cruia clientul tie dac rspunsul este valid sau nu;
acest status este reprezentat prin coduri (numere de trei cifre) de la 100 pn la 600, unde nu toate numerele sunt
folosite
web server este n esen un server TCP cu logica pentru manipularea protocolului HTTP
13. JavaMail
JavaMail API se folosete pentru crearea i citirea e-mail-urilor ntr-un mod independent de platform
funcionalitile JavaMail API se afl n pachetul javax.mail
obiectul de tip Session va reprezenta sesiunea curent cu serverul mail
clasa abstract Message se folosete pentru crearea clasei mesajelor concrete; MimeMessage este clasa folosit
pentru a reprezenta mesajeleconform standardului Mime
96 / 102
clasa Store reprezint depozitul de mesajepe server, iar clasa Folder, folderul concret, prin care mesajele sunt grupate
pe server
97 / 102
4. Threads
14. Introducere n threads
capacitatea software-ului de a efectua mai multe aciuni distincte n acelai timp se numete de concuren
(Concurrency)
un thread este cea mai mic secven a instruciunilor de program cu care se poate manipula n mod independent;
threads mpart aceleai resurse respectiv partajeaz resursele procesului
faptul c threads mpart acelai spaiu de memorie, pe lng avantaje creeaz i anumite probleme, cum ar fi
concurena, adic dreptul la anumite resurse
fiecare program Java este alctuit din cel puin un thread, care se numete programul principal, respectiv, main thread
exist dou moduri n care un cod se poate executa ntr-un thread separat: implementarea interfeei Runnable sau
motenirea clasei Thread
metoda runeste primul punct care se va executa dup activarea thread-ului indiferent de modul n care utilizm
crearea thread-ului i putem porni de aici pentru a activa celelalte funcionaliti
prin implementarea interfeei Runnable, clasa Threadservete drept nveli pentru clasa Runnable cu ajutorul creia
putem s manipulm clasa Runnable n contextul unui thread
un thread se iniializeaz cu metoda start a clasei Thread
executarea unui thread se poate pune pe pauz pentru un timp folosind metoda sleep
thread-urile se pot parametriza n aceleai moduri n care acest lucru se realizeaz cu clasele obinuite (constructor,
setarea cmpurilor)
98 / 102
oprirea unui thread folosind metoda stop se considernesigur i se recomand oprirea prin controlul valorilor
cmpurilor thread-ului
metodele de suspendare (suspend) i repornire a unui thread (resume) sunt metode care, de asemenea, se consider
nesigure
threads comunic n primul rnd prin partajarea accesului la cmpuri, precum i prin referinele la obiecte
atunci cnd threads comunic pot aprea nite probleme poteniale, care se rezolv utiliznd sincronizarea
pentru ca o resurs din Java s fie sincronizat, se folosete modificatorul Synchronizedsau declaraia cu aceeai
denumire
cnd marcm o metod drept sincronizat, nseamn c atunci cnd un thread obine drepturi asupra ei, niciun alt
thread nu o va mai puteafolosipn cnd primul thread nu o elibereaz
putem anuna n mod explicit un thread s atepte pn cnd primete comanda s continue. n acest scop folosim
cuvintele cheie Wait, NotifyiNotifyAll
99 / 102
5. AWT i Java 2D
17. Introducere n grafica 2D i AWT
Java Abstract Window Toolkit este o bibliotec de clase care asigur gestionarea interfeei grafice de utilizator n Java
AWT folosete o astfel de abordare, acolo unde se implementeaz elementele interfeei grafice de utilizator cu
ajutorul controalelor de sistem native
conceptul de interfa grafic de utilizator AWT (GUI) se bazeaz pe componente (Components) plasate n
cadrulcontainerelor organizate prin layout
componentele permit utilizatorului s interacioneze cu programul; unele dintre componente sunt butoane, scroll bar,
label, cmpul textual
componentele care conin alte componente n coninutul lor se numesc containere
ordinea componentelor se stabilete folosind layout-ul
componentele se adaug n container folosind metoda add
evenimentele componenteise realizeaz n AWT prin clase Java standard de evenimente i asculttorii (listeners) lor
modul n care controalele vor fi poziionate ntr-un container se poate regla cu ajutorul layout-urilor
cnd crem un container, se subnelege c el are by default activat un BorderLayout
Border layout mparte ntreaga fereastr n cinci uniti: nord, vest, est, centru i sud sau echivalentele lor: Page Start,
Page End, Line Start, Center i Line End.
FlowLayoutordoneaz toate comenzile, una dup alta, pe plan orizontal, pn la sfritul containerului, dup care
trece la urmtorul rnd i continu ordonarea
GridLayoutcreeaz un tabel n container, unde fiecare celul a tabelului reprezint o fereastr pentru un control
CardLayout poate conine mai multe containere, ns doar unul va fi afiat pe rnd
100 / 102
Java 2D API permite crearea graficelor bidimensionale, utiliznd textul i imaginile n programele Java implementate
prin extinderea lui AWT
pentru a desena orice pe o component, acea component trebuie s permit s se deseneze pe ea, respectiv s
conin metoda paint care trebuie reimplementat
clasa Graphics conine metode de desen pentru majoritatea formelor geometrice, pentru care utilizeaz parametrii
generali pentru toate formele
poziionarea formelor grafice ntr-un container se face n comparaie cu acel container, ceea ce nseamn c o anumit
form, care ncepe din punctul x: 0 i y: 0, va ncepe dincolulstnga sus al ferestei
metodadrawLine se folosete pentru a desena o linie, drawOvalpentru desenul cercul sau elipsa, drawPolygonpentru
desenarea poligoanelor
este posibil desenarea i umplerea formelor cu metoda fill
101 / 102
obiectul desenat poate fi transformat prin transformare, translaie i rotaie, unde transformarea este schimbarea
formei, translaia - schimbarea poziiei, iar rotaia - rotaia obiectului
22. Tiprirea
Java AWT are opiunea de a trimite obiecte Graphics ctre imprimant utiliznd drivere de sistem i comenzi de
tiprire
funcionalitile destinate tipririi se afl n pachetul java.awt.print
obiectul de baz al tipririi este obiectul clasei PrinterJob
poatefitrimis la tiprireorice obiect care implementeaz interfaa Printable
tiprirea se activeaz cu metoda printa clasei PrinterJob
102 / 102