Anda di halaman 1dari 8

Java 1.

A Modul 0 Introducere

0.1 NOIUNI INTRODUCTIVE

n cadrul acestui curs ne propunem s discutm despre modul de dezvoltare al programelor(aplicaii


software) cu ajutorul limbajului de programare Java. nainte de a discuta despre modul de
implementare, ce reprezint un limbaj de programare i care este scopul acestuia propunem abordarea
nelegerii noiunii de sistem.

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:

1. Unitate central de procesare(CPU Central Processing Unit)

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:

De intrare (input devices) mouse, tastatura, touch-pad, microfon etc.

De ieire (output devices) monitor, imprimant, boxe, cti etc.

Mixte (mixed devices) monitor touch

n continuare vom prezenta doar cele mai importante componente din punct de vedere al
programatorului: procesorul i memoria

Procesorul

Unitatea central de prelucrare reprezint unitatea funcional a calculatorului responsabil cu luarea


deciziilor. Acesta are rolul de a interpreta i rezolva operaii logice i matematice simple i complexe, n
virgul fix sau virgul mobil.

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

Memoria reprezint unitatea nefuncional a calculatorului responsabil cu stocarea datelor i a


informaiilor att nainte de prelucrare ct i dup operaiile aplicate asupra acestora. Spunem c
aceasta este nefuncional ntruct depinde de prezena unei uniti de calcul care s realizeze operaii
asupra datelor i s le interpreteze.

Realiznd o clasificare i asupra memoriei, aceasta este de trei tipuri:

1. Memoria intern (RAM Random Access Memory) memorie volatil(ceea ce nseamn c se


pierde coninutul odat ce se pierde alimentarea) are rolul de a stoca informaiile necesare
proceselor active, pentru a nu fi nevoie s fie aduse constant din memoria extern. Pe lng
memoria RAM putem discuta aici i despre memoria ROM(Read-Only Memory), o memorie
nevolatil, dar aceasta nu prezint interes pentru programatori.

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.

n mare, putem mpri componentele software n 2 categorii:

o Sistemul de operare (Operating System)

o Aplicaii

Sistemul de operare este un manager, ce se ocup de gestionarea i coordonarea activitilor unui


sistem, n timp ce aplicaiile reprezint utilitare ce se adaug sistemului de operare pentru ndeplinirea
anumitor sarcini.

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

0.4 JAVA CARACTERISTICI DE BAZ

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.)

Ca i limbaj de programare, Java reprezint o modalitate de exprimare/descriere pentru sistem a


informaiilor la care noi ne gndim i pe care vrem s le prezentm n cadrul programului.

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. -

1. De fapt JVM deschide o instan separat pentru fiecare program n parte

2. Faptul c exista ctre o JVM pentru fiecare sistem de operare n parte(Windows,


Unix, Linux) a dat natere expresiei Write once, Run Anywhere i
caracteristica de portabilitate.

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.

Relum caracteristicile de baz ale limbajului:

o Obiect orientat OOP/POO

o Compilat & Interpretat

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.

0.4 INSTALAREA JAVA

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:

13. Compilatorul javac

14. Executorul java

15. Dezvoltatorul de documentaie javadoc

16. jvisualvm

n imaginile de mai jos gsii indicaiile de instalare a JDK i JRE.


Dei un program n Java poate s fie scris i ntr-un editor de text i compilat din linia de comand, n
cadrul cursului nostru, vom folosi un IDE dezvoltat special pentru nvare: BlueJ. Acesta poate s fie
descrcat de pe http://www.bluej.org.

Dup instalare, deschidei aplicaia i ar trebui s avei o interfa similar cu cea din imaginea de mai
jos.