Sunteți pe pagina 1din 9

I.

ELEMENTE GENERALE

1. Ce este JAVA ?
este un limbaj de programare dezvoltat de JavaSoft,
companie n cadrul firmei Sun Microsystems.
este complet orientat pe obiecte si ofera posibilitatea real
de refolosire a codului (care este de fapt promisiunea
fcut la apariia programrii orientate pe obiecte).
este neutru din punct de vedere arhitectural, cu alte
cuvinte Java este un limbaj independent de platforma de
lucru, aceeasi aplicaie rulnd, fr nici o modificare, pe
sisteme diferite cum ar fi Windows, UNIX sau Macintosh,
lucru care aduce economii substaniale firmelor care
dezvolt aplicaii pentru Internet.
limbajul Java este modelat dup C i C++, trecerea de la
C, C++ la Java fcndu-se foarte uor.
elimin sursele frecvente de erori ce apar n programare
prin eliminarea pointerilor, administrarea automat a
memoriei i eliminarea fisurilor de memorie printr-o
procedur de colectare a gunoiului care ruleaz n
fundal;
este cel mai sigur limbaj de programare disponibil n acest
moment, asigurnd mecanisme stricte de securitate a
programelor concretizate prin: verificarea dinamic a
codului pentru detectarea secvenelor periculoase,
impunerea unor reguli stricte pentru rularea programelor
lansate pe calculatoare aflate la distan (acestea nu au
acces la reeaua local, la fiierele stocate n sistemul local
i nu pot lansa n execuie programe locale), etc.
permite creearea unor documente Web mbuntite cu
animaie i multimedia.
a fost proiectat pentru a fi folosit n medii distribuite i
sisteme deschise.
2.

Evoluia limbajului JAVA

In 1991, firma SUN, mergnd pe direcia dezvoltrii


sistemelor deschise de lucru n reea, a creat un proiect de

lucru numit Green, care avea drept scop punerea la punct a


unor procesoare care s poat rula pe diferite tipuri de
aparate i punerea la punc a unui sistem care s poat rula
pe platforme diferite. Planul iniial prevedea dezvoltarea
proiectului n C++, dar au aprut foarte multe probleme n
ncercarea de dezvoltare acompilatorului de C++. Ca urmare,
James Gosling, membru al grupului Green, a nceput s
lucreze la dezvoltarea unui nou limbaj, numit Oak, care, mai
trziu, avea s se numeasc Java. De asemenea grupul
Green avea s-i schimbe numele nti n FirstPerson, apoi n
JavaSoft.
Abia dup ce a fost nfiinat compania Netscape
Communications Corporation, cei de la JavaSoft s-au orientat
ctre Internet i Web, mediul multiplatform distribuit al
reelei Internet fiind perfect pentru testarea proiectului.
In prezent licena pentru tehnologia Java a fost acordat
unor firme precum IBM, Microsoft, Sillicon Graphics, Adobe i
Netscape.
3.

Java : un limbaj compilat i interpretat

In functie de modul de execuie al programelor, limbajele de


programare se mpart n dou categorii :
interpretate : instruciunile sunt citite linie cu linie de
un program numit interpretor i traduse n
instruciuni main; avantaj : simplitate;
dezavantaje : vitez de execuie redus
compilate : codul surs al programelor este
transformat de compilator ntr-un cod ce poate fi
executat direct de procesor; avantaj : execuie
rapid; dezavantaj : lipsa portabilitii, codul compilat
ntr-un format de nivel sczut nu poate fi rulat dect
pe platforma pe care a fost compilat.
Programele Java pot fi att interpretate ct i compilate.
Cod surs Java (compilare) Cod de octei
Codul de octei este diferit de codul main. Codul
main este reprezentat de o succesiune de 0 i 1; codurile

de octei sunt seturi de instruciuni care seamn cu codul


scris n limbaj de asamblare.
Codul main este executat direct de ctre procesor i
poate fi folosit numai pe platforma pe care a fost creat; codul
de octei este interpretat de mediul Java i de aceea poate fi
rulat pe orice platform care folosete mediul de execuie
Java neutralitatea limbajului Java din punc de vedere
arhitectural.
Cum este rulat un program Java ? Interpretorul Java
transform codul de octei ntr-un set de instruciuni main,
ntrzierea interpretrii fiind ns foarte mic datorit
asemnrii dintre codul de octei i limbajul de asamblare i
din acest motiv execuia se face aproape la fel de repede ca
n cazul programelor compilate.
Cum este obinut neutralitatea arhitectural a
limbajului Java ? Cu alte cuvinte, cum este posibil portarea
codului de octei pe calculatoare diferite? Truc : codul surs
este compilat nu pentru calculatorul pe care se lucreaz ci
pentru un calculator inexistent, acest calculator imaginar
fiind numit Maina virtual Java (Java Virtual Machine).
Interpretorul acioneaz apoi ca un intermediar ntre Maina
virtual Java i maina real pe care este rulat programul.
Aplicaia utilizatorului
Obiecte Java
Maina virtual Java
UNIX
Windows
Macintos
h
Sisteme de operare
4.

Java i conceptele programrii orientate pe


obiecte

Limbajul Java este urmtorul pas logic n domeniul limbajelor


de programare i se bazeaz pe cel mai popular limbaj de
programare al momentului C++. In Java se pot obine
programe cu aspectul i comportarea programelor C++, dar
beneficiind de avantajele oferite de un limbaj proiectat
special pentru POO. Java renun complet la programarea

procedural specific C-ului i v oblig s folosii conceptele


solide ale POO.
Conceptele programrii orientate pe obiecte cuprind :
Obiectele
ncapsularea i transmiterea de mesaje
Clasele
Bibliotecile (numite pachete, n Java)
Motenirea
Modificatorii de acces
Obiectele :
unitatea elementara a POO
starea obiectului este dat de variabile de instan
comportamentul obiectului este dat metode
uor de refolosit, actualizat, ntreinut
ncapsularea i transmiterea de mesaje :
Clasele :
ncapsuleaz obiecte
o singur clas poate fi folosit pentru instanierea mai
multor obiecte
Pachetele: colecie de clase nrudite
Motenirea : permite
extinderea funcionalitii unor clase existente
refolosirea codului
Modificatorii de acces : controleaz accesul la metodele i
variabilele obiectelor. Acestea pot fi :
1. Private - accesibile doar obiectelor din aceeai clas
2. Protejate
- accesibile obiectelor din aceeai clas
i din subclasele clasei respective
3. Prietenosase - (nivelul de accesibilitate prestabilit)
accesibile tuturor claselor din pachetul curent
4. Publice - accesibile tuturor claselor din orice pachet
Programarea n limbajul Java
5. Caracteristicile de baz al limbajului Java
A. Folosirea n medii de reea distribuite

Java a fost proiectat pentru un mediu complex cum este


Internetul i de aceea trebuie s poat rula pe platforme
eterogene distribuite. Acest lucru este posibil deoarece :
este neutru din punct de vedere arhiectural = programele
pot fi rulate pe orice platform care are instalat mediul
Java
are un grad ridicat de portabilitate = conine obictecte
care pot fi folosite pe platforme eterogene i respect
standardele IEEE (Institue of Electrical and Electronics
Engineers) pentru structurile de date (folosirea ntregilor, a
numerelor n virgul mobil, a irurilor, etc)
este distribuit = poate folosi att obiecte memorate local
ct i obiecte stocate pe calculatoare aflate la distan
este compatibil cu mediile de lucru n reea (poate fi
utilizat n reele complexe) i accept direct protocoalele
de reea obinuite cum ar fi FTP i HTTP
B.
Asigurarea performanei ridicate
compilatorul i sistemul de execuie ofer o vitez ridicat
rulrii programelor
are ncorporate posibiliti de execuie multifilar (rularea
simultan a mai multor procese) folosind un sistem de
acordare de prioriti proceselor ce trebuie executate.
Printre procesele care ruleaz n fundal sunt cele de
colectare a gunoiului i de gestionare a memoriei.
C.
Refolosirea codului i fiabilitatea
Java este un limbaj dinamic, lucru asigurat prin ntrzierea
legrii obiectelor i legarea dinamic a claselor n timpul
execuiei, ceea ce mpiedic apariia erorilor n cazul
schimbrii mediului de lucru dup compilarea programului
surs.
Fiabilitatea este asigurat prin eliminarea pointerilor, prin
folosirea verificrii dinamice a limitelor i prin gestionarea
automat a memoriei, nlturndu-se posibilitatea fisurilor
i violrilor de memorie. O alt cale de evitare a erorilor
este verificarea structurilor de date att la compilare ct i
n timpul execuiei.

D. Asigurarea securitii
Interzice accesul la stiva sistemului, la zona liber de
memorie i la seciunile protejate de memorie
Verific validitatea codului semnalnd urmtoarele:
Violrile de acces
Conversiile ilegale de date
Valori i parametri incoreci
Modificarea claselor sau folosirea incorect a acestora
Depirea stivei n partea superioar sau inferioar
Activiti suspecte sau neautorizate
6.

Structura limbajului Java

Aplicaii i miniaplicaii
miniaplicaie (applet) = program Java creat pentru a fi
folosit n sitemul WWW. Applet-urile necesit un program
de vizualizare extern : browser Web sau un program
specializat de vizualizare (applet viewer).
aplicaie (app) = program Java care poate fi rulat
independent
Spaii de nume
Pentru evitarea conflictelor legate de spaiile de nume,
fiecare component a unui nume este imbricat n
conformitate cu unul din urmtoarele niveluiri:
0 - spaiul de nume al pachetului
1 - spaiul de nume al unitii de compilare
2 - spaiul de nume al tipului
3 - spaiul de nume al metodei
4 - spaiul de nume al blocului local
5 - spaiul de nume al blocului imbricat
Interpretorul este responsabil pentru meninerea i
translatarea spaiului de nume. Spaiile de nume sunt
separate prin punct.
Ex. java.lang.System.out.println() - calea complet
Pachetele Java din biblioteca original de pachete sunt
referite prin java uramt de numele pachetului (java.lang).

In cazul n care nu exist confuzii poate fi folosit o variant


prescurtat a apelului (interpretorul folosete prima potrivire
de nume descoperit); apelul la println() se putea face i prin
System.out.println()
Structuri de denumire a programelor
Fiiere surs .java (compilare) cod de octei format din
uniti de compilare;
Pentru fiecare clas declarat n codul surs este
generat o unitate de compilare stocat ntr-un fiier separat
cu extensia .class
Unitile de compilare Java conin :
instruciuni de pachet
instruciuni de import
declaraii ale claselor i interfeelor
(structura de baz a unui program Java)
Instruciuni de pachet
Sunt folosite pentru a preciza poziia pachetelor folosite ntr-o
aplicaie. In mod implicit Java folosete calea de acces
curent i presupune c fiierele cu cod compilat se afl n
directorul curent la rularea programului.
Pentru ca obiectele i clasele s respecte o structur
ierarhic diferit de cea prestabilit trebuie inclus n codul
surs o instruciune de pachet :
package

NumePachet

In cazul cnd se folosesc mai multe niveluri instruciunea va


avea forma:
package

MyPackages.NumeSubPachet

Numele de pachete de pe fiecare nivel al spaiului de nume


trebuie s reflecte structura de directoare a sistemului de
fiiere, deoarece Java transform numele pachetelor n ci de
acces pentru localizarea claselor i a metodelor asociate
pachetelor. De exemplu ntr-un sistem Windows 95/NT
numele de pachet MyPackages.Pachetel va fi transformat n
directorul
/MyPackages/Pachetel unde Java va cuta pachetul respectiv.
Instruciuni de import

Java conine un set de funcii principale, accesibile global, i


care sunt localizate n pachetul java.lang. Pentru a obine
accesul la alte pachete, clase i obiecte care nu se afl n
aceast bibliotec se folosesc instruciuni de import, care
ajut compilatorul Java s regseasc metodele
corespunztoare i s evite conflictele de nume.
De exemplu, pentru a apela metoda Button din pachetul
java.awt (awt = Abstract Window Toolkit) se folosete
instruciunea java.awt.Button. O metod mai eficient este
de a importa metoda import java.awt.Button i de a apela
metoda doar prin instruciunea Button.
Cea mai uzual metod de import este importul la
cerere, care spune compilatorului s importe numai clasele
de care este nevoie n program : import java.awt.* pentru a
nu face disponibile toate clasele din java.awt.
Declaraiile de clas
In Java toate clasele sunt derivate dintr-o clas sistem
numit Object. Object este rdcina ierarhiei de clase, toate
metodele i variabilele clasei fiind disponibile celorlalte clase.
In mod implicit toate clasele sunt private. Declaraiile de
clas, fr modificatori de acces, au aceeai sintax ca n C+
+:
class nume_clasa
{
//metode si variabile asociate clasei
}

Java accept numai motenirea simpl a claselor, fiecare


clas avnd aadar un singur printe, numit superclas. In
scimb, Java permite motenirea multipl a metodelor
claselor, prin intermediul interfeelor claselor.
Declaraiile de interfa
Interfeele sunt clase abstracte. Diferena major fa de o
clas este aceea c interfeele nu pot stoca date. De

asemenea, nu pot conine implementri ale metodelor ci


doar declaraii ale acestora.
O clas poate s implementeze una sau mai multe
interfee i poate s partajeze aceaai interfa cu alte clase
sau instane ale unei clase.
Declaraiile de interfa fr modificatori au urmtorul
format:
interface nume_interfata {
//metode si variabile statice asociate interfetei
}

Declaraiile de clase care folosesc interfee au


urmtorul format:
class nume_clasa implements nume_interfata {
//corpul clasei
}

Un alt format poate fi:


class nume_clasa implements
nume_interfata1,...,nume_interfataN {
//corpul clasei
}

Singura deficien a folosirii interfeelor este aceea c


necesit legare dinamic, ceea ce reduce performanele
execuiei. Sunt ns mai eficiente dect motenirea multipl
din C++, deoarece reduc suprasarcina de execuie.

S-ar putea să vă placă și