Documente Academic
Documente Profesional
Documente Cultură
A Modul 0 Introducere
Sistemul reprezint ansamblul format din componentele hardware i software, capabil s execute cu
ajutorul operaiilor matematice i logice diveri algoritmi.
Un algoritm reprezint un set de instruciuni care au rolul procesrii unui set de informaii n vederea
obinerii unor date de ieire. Vom vedea n cadrul cursului c aceast definiie se aplic limbajelor de
programare procedurale, n timp ce pentru Java vom avea o definiie particularizat.
Sisteme descrise mai sus nu sunt capabile s gndeasc singure n vederea rezolvrii problemelor date,
avnd nevoie de instruciuni precise ntr-o anumit ordine pentru a putea executa un anumit proces.
Scrierea instruciunilor este rolul programatorului.
Un program reprezint un set de instruciuni scrise i gndite cu scopul obinerii unui program eficient i
util, att din punct de vedere al modului de rezolvare al problemei ct i din punct de vedere al vitezei
de execuie. Un alt aspect ce trebuie considerat n cadrul dezvoltrii aplicaiilor, n general, este folosirea
eficient de resurse de ctre aplicaii.
Aplicaiile pe care le vom dezvolta n cadrul acestui curs sunt destinate utilizrii pe
calculatoare(desktopuri sau laptopuri), i nu vor fi destinate utilizrii n cadrul serviciilor web sau pentru
utilizarea pe dispozitive mobile. Discutm n continuare despre cele dou pri care constituie un
calculator: hardware i software.
0.2 HARDWARE
Partea hardware reprezint componentele fizice ce constituie un calculator. ntr-o clasificare foarte
general, acestea se pot mpri n:
2. Memorie
3. Periferice
Prin periferice ne referim la dispozitivele ce se pot ataa unitii centrale cu ajutorul porturilor, cu
ajutorul crora se introduc informaii in sistem sau cu ajutorul crora se afieaz informaii din sistem.
Realiznd o clasificarea a perifericelor, acestea se pot mpri n:
n continuare vom prezenta doar cele mai importante componente din punct de vedere al
programatorului: procesorul i memoria
Procesorul
Procesoarele single-core (cu un singur nucleu) nu poate interpreta dect o singur instruciune la un
moment dat, unitatea de timp n care aceasta se execut apropiindu-se de nanosecund.
n prezent, majoritatea sistemelor(indiferent ca vorbim despre calculatoare sau dispozitive mobile) sunt
dotate cu procesoare ce conin mai multe nuclee (dual-core, quad-core etc), capabile de a executa mai
multe operaii ntr-o unitate de timp, crescnd astfel viteza de prelucrare a informaiilor i de rezolvare a
operaiilor ce reprezint problema.
Memoria
2. Memoria cache o memorie de tip buffer, amplasat foarte aproape de procesor. Necesar i
folosit de ctre procesele ce se execut la un moment timp de dat. Spre diferen de memoria
intern, are un timp de accesare mult mai redus.
3. Memoria extern are rolul de stocare a informaiilor n cantiti mult mai mari. Este
reprezentat de dispozitive precum HDD(Hard Disk Drive), SSD(Solid-State Drive), DVD-ROM,
Flash drive etc.
<\ol>
0.3 SOFTWARE
Software-ul reprezint partea logic a sistemelor, ce nu poate fi vzut sau atins, realiznd
interaciunea dintre utilizator i componentele hardware. Mai exact, cu ajutorul software-ului sunt
transmise unitii de calcul operaiile ce trebuie realizate i sunt prezentate informaiile ce trebuie
prelucrate.
o Aplicaii
Dezvoltarea programelor
n paii cei mai generali, crearea unui program presupune urmarea a trei pai elementari:
3. Scrierea programului
4. Compilarea programului
5. Execuia programului
Scrierea programului presupune cunoaterea unui limbaj de programare. n zilele noastre exist un
numr foarte mare de limbaje de programare unele dintre ele sunt considerate high-level (de nivel
nalt) iar altele sunt low-level.
Java, Python, C++, C# reprezint cteva exemple de limbaje de programare high-level. Acestea au fost
inventate pentru a simplifica munca programatorului n cadrul procesului de dezvoltare al aplicaiilor.
Programele n limbajele low-level (Assembler) presupun folosirea unor instruciuni limitate disponibile
fiecrui procesor n parte. Avantajul acestora este timpul de execuie extrem de mic, dar dezvoltarea n
acest fel dureaz considerabil mai mult.
naintea dezvoltarea limbajelor de programare, comunicarea cu calculatoare se fcea n limbaj
binar(iruri foarte lungi de 0 i 1), numit i limbaj main. n prezent, limbajele de programare sunt
dezvoltate de aa natur nct s foloseasc cuvinte din limba englez pentru instruciuni, simplificnd
foarte mult procesul de dezvoltare a unei aplicaii
n prezent, Java este considerat unul dintre cele mai puternice i importante limbaje de programare de
pe pia, putnd fi utilizat n aproape orice de aplicaii. Este un limbaj de programare high-level, orientat
pe obiect cu elemente de programare funcional.
Trebuie precizat nc de la nceput ca ntre Java i JavaScript nu exist nicio legtur, singura asemnare
fiind reprezentat de ctre numele acestora.(a reprezentat de fapt o micare de marketing a
dezvoltatorilor limbajului JavaScript, care au profitat de popularitatea limbajului Java.)
Spunem despre Java ca este un limbaj orientat pe obiecte(OOP sau POO) , deoarece informaiile
rezultate n urma rulrii unui program nu sunt obinute pur si simplu din aplicarea unor algoritmi asupra
unor date de intrare, ci mai degrab sunt obinute n urma interaciunii unor entiti numite obiecte.
Vom intra n mai multe detalii legate despre acest aspect n momentul n care vom ajunge la scrierea
primelor programe. Ca i comparaie, primele limbaje de programare(C, FORTRAN etc.) erau limbaje
procedurale programarea procedural - reprezint un set de proceduri (instruciuni) care ntr-o
anumit ordine formeaz un algoritm. Programarea procedural este acum parte a programrii
orientate pe obiecte fiind ntlnita aa cum vom vedea mai departe n dezvoltarea comportamentelor
obiectelor.
O alta caracteristic foarte important a limbajului Java este reprezentat de faptul c este independent
de platform. Aceasta este o caracteristic foarte important ntruct semnific faptul ca programele
scrise cu acest limbaj vor putea fi executate indiferent de sistemul de operare cu care a fost compilat.
Aceasta lucru este posibil ntruct programele scrise n Java nu sunt rulate direct de ctre sistemul de
operare, ci de ctre o main virtual, disponibil pentru orice platform(sistem de operare).
Pentru a nelege mai bine acest proces, detaliem modul de dezvoltare a unei aplicaii cu Java.
o ncepem prin scrierea fiierelor n format .java acestea sunt fiierele de cod surs
o Fiierele .java sunt compilate cu ajutorul utilitarului javac (java compiler) el transform
codul scris n cod nativ al mainii virtuale formeaz fiierele .class. n acest moment,
sistemul nu tie nc s execute aplicaiile.
o JVM(Java Virtual Machine) interpretorul mainii virtuale preia fiierele .class i face
astfel nct programul s fie neles de ctre sistem. -
Aceti pai urmai pentru rularea unui program scris n Java ne mai dau o caracteristic important a
limbajului compilat i interpretat. Ca i comparaie, limbajul C++ este doar compilat, n timp ce
limbajul PHP este doar interpretat
Ultima caracteristic ce trebuie menionat este faptul ca Java este un limba open source. Pe scurt,
acest lucru nseamn ca oricine poate s aduc mbuntiri i/sau contribuii limbajului prin dezvoltarea
de biblioteci i a aplicaiilor de baz care s fie folosite de ctre alii. Ce semnific bibliotecile i cum se
folosesc acestea vom nva ntr-o lecie ulterioar.
o Portabil
o Open-Source
Trebuie menionat faptul c dezvoltarea cu ajutorul unei maini virtuale care s realizeze interpretarea,
dei aduce avantajul portabilitii are i dezavantajul unui timp mai mare de execuie. Din cauza acestui
lucru, exist anumite aplicaii pentru care Java nu poate fi destinat, ntruct va veni cu o laten,
comparativ cu limbajele native. Mai exact, nu vom folosi Java acolo unde este necesar de precizie n
real-time (programarea bordului unei maini, jocuri video etc.) Targetul de aplicaii dezvoltate cu Java
este reprezentat n general de aplicaii business.
Vom avea nevoie de trei componente importante pentru a putea programa i executa aplicaii Java. n
primul rnd, oricine vrea sa execute aplicaii Java are nevoie de o maina virtuala JVM instalat pe
calculator. Maina virtual se instaleaz descrcnd si instalnd pachetul JRE (Java Runtime
Environment) de pe http://java.oracle.com.
Pentru a dezvolta aplicaii Java, de pe acelai site trebuie descrcat i instalat pachetul JDK (Java
Developer Kit). n acesta se afl mai multe aplicaii utile programatorului. n cadrul cursului ne vom
folosi de:
16. jvisualvm
Dup instalare, deschidei aplicaia i ar trebui s avei o interfa similar cu cea din imaginea de mai
jos.