Previzualizare curs:

Extras din curs:

Limbajul Java impreuna cu mediul sau de dezvoltare si executie au fost proiectate pentru a rezolva o parte dintre problemele actuale ale programarii. Proiectul Java a pornit cu scopul declarat de a dezvolta un software performant pentru aparatele electronice de larg consum. Aceste echipamente se definesc ca: mici, portabile, distribuite si lucrand in timp real. De la aceste aparate, ne-am obisnuit sa cerem fiabilitate si usurinta in exploatare.

Limbajul luat initial in considerare a fost C++. Din pacate, atunci cand s-a incercat crearea unui mediu de executie care sa respecte toate aceste conditii s-a observat ca o serie de trasaturi ale C++ sunt incompatibile cu necesitatile declarate. In principal, problema vine din faptul ca C++ este prea complicat, foloseste mult prea multe conventii si are inca prea multe elemente de definitie lasate la latitudinea celor care scriu compilatoare pentru o platforma sau alta.

In aceste conditii, firma Sun a pornit proiectarea unui nou limbaj de programare asemanator cu C++ dar mult mai flexibil, mai simplu si mai portabil. Asa s-a nascut Java. Parintele noului limbaj a fost James Gostling care este cunoscut ca autor al editorului emacs si al sistemului de ferestre grafice NeWS. Proiectul a inceput inca din 1990 dar Sun a facut publica specificatia noului limbaj abia in 1995 la SunWorld in San Francisco.

Numele initial al limbajului a fost Oak, numele unui copac care creste in fata biroului lui James Gostling. Ulterior, s-a descoperit ca numele fusese deja folosit in trecut pentru un alt limbaj de programare asa ca a fost abandonat si inlocuit cu Java, spre deliciul programatorilor care iubesc cafenelele si aromele exotice.

Ce este Java?

In primul rand, Java incearca sa ramana un limbaj simplu de folosit chiar si de catre programatorii neprofesionisti, programatori care doresc sa se concentreze asupra aplicatiilor in principal si abia apoi asupra tehnicilor de implementare a acestora. Aceasta trasatura poate fi considerata ca o reactie directa la complexitatea considerabila a limbajului C++.

Au fost indepartate din Java aspectele cele mai derutante din C++ precum supraincarcarea operatorilor si mostenirea multipla. A fost introdus un colector automat de gunoaie care sa rezolve problema dealocarii memoriei in mod uniform, fara interventia programatorului. Colectorul de gunoaie nu este o trasatura noua, dar implementarea acestuia in Java este facuta inteligent si eficient folosind un fir separat de executie, pentru ca Java are incorporate facilitati de executie pe mai multe fire de executie. Astfel, colectarea gunoaielor se face de obicei in timp ce un alt fir asteapta o operatie de intrare-iesire sau pe un semafor.

Limbajul Java este independent de arhitectura calculatorului pe care lucreaza si foarte portabil. In loc sa genereze cod nativ pentru o platforma sau alta, compilatorul Java genereaza o secventa de instructiuni ale unei masini virtuale Java (numita bytecod). Executia aplicatiilor Java este interpretata. Singura parte din mediul de executie Java care trebuie portata de pe o arhitectura pe alta este mediul de executie cuprinzand interpretorul si o parte din bibliotecile standard care depind de sistem. In acest fel, aplicatii Java compilate pe o arhitectura SPARC de exemplu, pot fi rulate fara recompilare pe un sistem bazat pe procesoare Intel.

Una dintre principalele probleme ale limbajelor interpretate este viteza de executie, considerabil scazuta fata de cea a limbajelor compilate. Daca nu va multumeste viteza de executie a unei astfel de aplicatii, puteti cere mediului de executie Java sa genereze automat, plecand de la codul masinii virtuale, codul specific masinii pe care lucrati, obtinandu-se astfel un executabil nativ care poate rula la viteza maxima. De obicei insa, in Java se compileaza doar acele parti ale programului mari consumatoare de timp, restul ramanand interpretate pentru a nu se pierde flexibilitatea. Mediul de executie insusi este scris in C, ceea ce il face extrem de portabil.

Interpretorul Java este gandit sa lucreze pe masini mici, precum ar fi procesoarele cu care sunt dotate aparatele casnice. Interpretorul plus bibliotecile standard cu legare dinamica nu depasesc 300 Kocteti. Chiar impreuna cu interfata grafica totul ramane mult sub 1 Moctet.

Limbajul Java este in totalitate orientat obiect. Cu el se pot crea clase de obiecte si instante ale acestora, se pot incapsula informatiile, se pot mosteni variabilele si metodele de la o clasa la alta, etc. Singura trasatura specifica limbajelor orientate obiect care lipseste este mostenirea multipla, dar pentru a suplini aceasta lipsa, Java ofera o facilitate mai simpla, numita interfata, care permite definirea unui anumit comportament pentru o clasa de obiecte, altul decat cel definit de clasa de baza. In Java orice element este un obiect, in afara de datele primare. Din Java lipsesc functiile si variabilele globale. Ne raman desigur metodele si variabilele statice ale claselor.

Java este distribuit, avand implementate biblioteci pentru lucrul in retea care ne ofera TCP/IP, URL si incarcarea resurselor din retea. Aplicatiile Java pot accesa foarte usor reteaua, folosindu-se de apelurile catre un set standard de clase.

Java este robust. In Java legarea functiilor se face in timpul executiei si informatiile de compilare sunt disponibile pana in momentul rularii aplicatiei. Acest mod de lucru face ca sistemul sa poata determina in orice moment neconcordanta dintre tipul referit la compilare si cel referit in timpul executiei evitandu-se astfel posibile intruziuni rauvoitoare in sistem prin intermediul unor referinte falsificate. In acelasi timp, Java detecteaza referintele nule daca acestea sunt folosite in operatii de acces. Indicii in tablourile Java sunt verificati permanent in timpul executiei si tablourile nu se pot parcurge prin intermediul unor pointeri asa cum se intampla in C/C++. De altfel, pointerii lipsesc complet din limbajul Java, impreuna cu intreaga lor aritmetica, eliminandu-se astfel una din principalele surse de erori. In plus, eliberarea memoriei ocupate de obiecte si tablouri se face automat, prin mecanismul de colectare de gunoaie, evitandu-se astfel incercarile de eliberare multipla a unei zone de memorie.

Java este un limbaj cu securitate ridicata. El verifica la fiecare incarcare codul prin mecanisme de CRC si prin verificarea operatiilor disponibile pentru fiecare set de obiecte. Robustetea este si ea o trasatura de securitate. La un al doilea nivel, Java are incorporate facilitati de protectie a obiectelor din sistem la scriere si/sau citire. Variabilele protejate intr-un obiect Java nu pot fi accesate fara a avea drepturile necesare, verificarea fiind facuta in timpul executiei. In plus, mediul de executie Java poate fi configurat pentru a proteja reteaua locala, fisierele si celelalte resurse ale calculatorului pe care ruleaza o aplicatie Java.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Java
    • curs 10.doc
    • curs 11.doc
    • curs 6.doc
    • curs 7.doc
    • curs 8.doc
    • curs 9.doc
    • curs1.doc
    • curs2.doc
    • curs3.doc
    • curs4.doc
    • Curs5.doc
Alte informații:
Tipuri fișiere:
doc
Diacritice:
Nu
Nota:
10/10 (3 voturi)
Nr fișiere:
11 fisiere
Pagini (total):
170 pagini
Imagini extrase:
162 imagini
Nr cuvinte:
69 887 cuvinte
Nr caractere:
369 353 caractere
Marime:
378.32KB (arhivat)
Publicat de:
Anonymous A.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Limbaje de Programare
Tag-uri:
variabile, script, algoritm
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Panoiu Manuela
Sus!