Ce este Java?
Caracteristicile limbajului Java sunt:
- limbaj interpretat si compilat. Un limbaj este interpretat daca instructiunile unui program scris in acel limbaj sunt procesate linie cu linie si traduse in cod
masina. Un limbaj este compilat daca un program scris in acel limbaj este tradus
in cod masina (singurul limbaj pe care-l cunoaste un procesor). Programele interpretate sunt mai lente decat cele compilate, insa cele compilate sunt de obicei dependente de platforma respectiva.
Rezultatul compilarii programelor Java (fisierelor cu extensia
.java
)
sunt fisiere cu extensia .class
ce contin cod executabil (Java bytecodes)
pe masina virtuala java (JVM, Java Virtual Machine). Masina virtuala
java este implementabila pe orice sistem de operare. Interpretorul java
apeleaza masina virtuala pentru a traduce codul masina java in cod masina al
procesorului de pe masina gazda.
- limbaj independent de platforma. La instalarea limbajului Java,
este instalata masina virtuala java. Limbajul devine independent de
platforma prin faptul ca acelasi cod (aceleasi fisiere cu extensia .class)
poate fi rulat pe orice sistem care are instalata masina virtuala Java. In
prezent Java poate rula pe sistemele Windows, Unix, Solaris si altele.
- limbaj orientat pe obiecte. Java
cuprinde toate aspectele legate de programarea orientata obiect (Object
Oriented Programming, OOP): obiecte, transmitere de parametri, incapsulare, clase, biblioteci,
mostenire si modificatori de acces.
- limbaj concurent. Concurenta ( multithreading) inseamna capacitatea unui program de a executa mai multe secvenje de cod in
acelasi timp (daca masina este paralela) sau folosind partajarea timpului
(time sharing) pe masinile obisnuite. O secventa de cod Java incarcata in
memorie si in stare de executie se numeste fir de executie (thread).
- limbaj simplu. Simplitatea este
o caracteristica primara a limbajului Java, in care se poate face programere
fara un antrenament foarte indelungat. Programatorii pot fi productivi chiar
de la inceput.
In comparatie cu cel mai puternic limbaj nativ orientat
pe obiecte, C + +, este mai simplu prin urmatoarele trasaturi:
- elimina dificultatile de manipulare a sirurilor prin
crearea unei clase dedicate
- elimina dificultatile (si pericolele) legate de lucrul
cu pointerii
- alocarea si dealocarea memoriei se face automat
printr-un mecanism de colectare a datelor si obiectelor nefolosite (garbage collection)
si nu ca in C++ prin apel de functii. Eliberarea memoriei este executata
intr-un fir de executie separat.
- limbaj distribuit. Java este distribuit deoarece permite
atat utilizarea obiectelor de pe masina locala cat si de pe alte masini din
reteaua mondiala printr-un mecanism numit RMI (Remote Method Invocation). Limbajul Java ofera posibilitatea dezvoltarii de
aplicatii Internet, capabile sa ruleze pe platforme distribuite si eterogene. Java respecta standardul IEEE (eng. Institute of Electrical and Electronics Engineers) pentru structurile de date, cum ar fi folosirea intregilor, numerelor in virgula flotanta
si sirurilor de caractere.
- limbaj performant. Interpretorul Java este capabil sa execute un
fisier cu extensia
.class
aproape la fel de repede ca un cod compilat.
Colectorul automat de obiecte si date neutilizate (The automatic garbage collector)
ruleaza ca un fir de executie de prioritate scazuta asigurand, cu mare
probabilitate, ca memoria este disponibila atunci cand este nevoie de ea,
conducand astfel a o mare performanta a aplicatiilor Java.
- limbaj dinamic si sigur.
Limbajul si a sistemului de executie Java este dinamic in faza de editare a
legaturilor. Clasele sunt legate numai daca este necesar.
Java este proiectat pentru a crea programe foarte sigure.
El asigura verificari extensive in timpul etapei de compilare, urmate de un
al doilea nivel de verificari care se fac chiar in timpul executiei.
- limbaj robust cu trasaturi de
securitate intrinseci. Java este proiectat pentru a opera in medii
distribuite, ceea ce inseamna ca securitatea este de maxima importanta. Cu
trasaturi de securitate intrinseci limbajului si sistemului de executie (run-time
system), Java permite construirea de aplicatii ce nu pot fi atacate
(invadate) din exterior. In mediul de retea, aplicatiile scrise in Java sunt
sigure in fata codurilor neautorizate care incearca sa se strecoare in
spatele scenei si creaza virusi sau invadeaza sistemul de fisiere.
Programele Java nu pot accesa memoria heap, stiva,
memoria de cod, sau alte sectiuni protejate de memorie, deoarece Java nu foloseste pointeri si
aloca memorie doar la executie. Inainte ca interpretorul sa execute codul
Java, se verifica daca este un cod Java valid prin cercetarea accesului la date, conversiilor de date nepermise, valori si parametri incorecti, depasirea
stivei, etc.
© Cornel Mironel Niculae,
2003-2007
26-Jun-2007