Documente Academic
Documente Profesional
Documente Cultură
CONSIDERAŢII INTRODUCTIVE
1
2. Are un mare grad de independenţă de platformă. Mai exact, este total
independent de platformă, în ceea ce priveşte compilarea de la text Java la
byte code şi dependent în privinţa interpretării de la byte code la cod
maşină. Este uzual ca fişiere “byte code” obţinute pe o platformă oarecare să
fie pur şi simplu aduse şi executate pe calculatoare ce nu au instalat mediul
de programare Java, ci doar o maşină virtuală Java (înglobată, de exemplu,
într-un browser).
3. Este orientat pe obiecte. Zestrea de clase îmbibliotecate ale mediului Java
este extrem de bogată şi complexă.
4. Este concurent. Concurenţa în Java este una de tip multithreading.
Reamintim că prin thread sau fir de execuţie înţelegem un modul de program
ce reuneşte activităţi autonome sau independente şi are proprietatea că o
sesiune de rulare a sa se poate desfăşura în paralel sau cvasiparalel cu
sesiunile de rulare ale altor module delimitate pe acelaşi principiu sau chiar
cu alte sesiuni de rulare ale lui însuşi.
5. Prezintă câteva simplificări în raport cu C++, şi anume: nu admite moştenirea
multiplă, nu operează cu pointeri, ci cu referinţe, asupra cărora se pot efectua
doar operaţii de atribuire, nu şi operaţii aritmetice, efectuează alocarea /
dezalocarea memoriei implicit (există, totuşi, un mecanism de eliberare a
memoriei şi gestiune a ei raţională, numit “garbage collection”), este mai
puternic tipizat.
6. Este distribuit. Este distribuit în sensul că permite programarea de aplicaţii în
care procesarea este distribuită. Programele Java pot îngloba, alături de
obiecte locale, obiecte aflate la distanţă, în mod normal în reţea, inclusiv în
Internet. În Java, sunt respectate protocoalele de reţea FTP, HTTP, etc.
7. Este performant. Dezavantajul că fiecare execuţie a unui program Java
incumbă şi un proces de traducere –interpretarea- este diminuat prin faptul că
maşinile virtuale Java sunt realizate excelent –mai nou: cu atributul JIT (Just
In Time)- şi apoi compensat prin aceea că programele pot fi organizate
multithreading.
8. Este dinamic şi robust. În Java, alocarea memoriei este prin excelenţă
dinamică –adică: nu se face la compilare / linkeditare, ci în execuţie- şi orice
alocare este precedată de verificări.
9. Este sigur. Înainte ca interpretorul Java să execute codul intermediar, acesta
este supus unor verificări de tipul: nedepăşirea stivei, etc.
2
compilatorul Java: javac
interpretorul de cod intermediar: java (este specific pentru fiecare maşină
ţintă)
un depanator: jdb
un generator de fişiere header pentru integrarea unor funţii scrise în C:
javah
un vizualizator pentru aplicaţiile Java conţinute în pagini HTML:
appletviewer
un generator de documentaţie: javadoc
un dezasamblor pentru fişiere .class: javap
un utilitar pentru generarea de arhive: jar
3
4