Sunteți pe pagina 1din 41

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere

1
Programarea n limbajul
Java

1. Introducere

1. Apariia i evoluia limbajului Java
2. Versiuni
3. Extensii
4. Caracteristici
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
2
1. Apariia i evoluia limbajului Java

Java este un limbaj de programare de nivel nalt:
cu scop general
concurent
bazat pe clase i
orientat pe obiecte

Pe baza acestuia au fost dezvoltate un mai multe tehnologii care au fcut din
Java unul dintre cele mai utilizate limbaje la ora actual.
Prin Java au fost introduse multe idei noi n domeniul World Wide Web-
ului.
Java este un limbaj de nivel relativ nalt n care detaliile mainii nu sunt
disponibile direct.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
3
Java are multe elemente comune cu alte limbaje de programare orientate pe
obiecte, dar s-au adus mbuntiri acestora pentru a crea un limbaj de
programare mai uor de nsuit i de utilizat.

Limbajul care se afl la originea lui s-a numit iniial Oak (stejar) i a fost
conceput (n anul 1990 de ctre o echip condus de James Gosling n firma
Sun Microsystems) pentru aplicaii i sisteme nglobate. Mediul actual de
JDK (1.5.x) este rezultatul contribuiei unui numr foarte mare de specialiti
n mai multe etape.

Prima dat limbajul Oak a fost utilizat ntr-un proiect numit Green care
consta din proiectarea unui sistem de control pentru locuine. Acesta trebuia
s controleze televizoarele, instalaia de iluminat, telefoanele, etc.
Datorit coincidenei numelui (Oak) cu cel al unui alt produs software,
acesta a fost schimbat n denumirea actual.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
4
n 1993, dup ce World Wide Web (cu acronimul WWW) a fost transformat
ntr-un mediu grafic, s-a constatat c Java este un limbaj potrivit pentru
aplicaii de Web. Astfel s-a ajuns ca la construirea unui browser
(component software pentru cutare n Internet, numit mai trziu HotJava)
care demonstra puterea limbajului.

Firma Sun Microsystems a anunat oficial Java ca limbaj n anul 1995.
n anul 1996 au fost publicate pentru prima dat specificaiile limbajului
Java (engl.: J ava Language Specifications).

Java este un limbaj care pune la dispoziie o structur uor de folosit,
modelat pe baza a dou dintre cele mai populare limbaje de programare, C
si C++.

Limbajul Java este apropiat de limbajele Visual Basic, Pascal i Delphi.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
5
Proiectanii limbajului JAVA au eliminat multe dintre dezavantajele din
limbajele C si C++, dar au pstrat avantajele acestora cum ar fi proiectarea
orientat pe obiecte.

Interfaa JAVA API a limbajului este mai prietenoas i mai comod de
utilizat dect componentele similare din limbajul C++. Bibliotecile de clase
Java ocup un volum mai mic dect cele similare din C sau C++.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
6
2. Versiuni ale limbajului Java

Dei firma Sun MicroSystems a nceput lucrul la limbajul Java n 1990, doar
n 1995 a aprut prima versiune comercial.
Limbajul Java poate fi utilizat pe sisteme de operare ca: Windows 95,
Windows 98, Windows 2000, Windows NT, Windows XP, Sun Solaris,
Macintosh i diverse siteme Unix.
Pentru dezvoltarea programelor exist mediile Java Developer's (sau
Development) Kit (cu acronimul JDK, adic kitul dezvoltatorului Java, sau
kitul de dezvoltare Java) sau SDK (acronim de la Software Developers Kit):
JDK 1.0.2 - din 1996
JDK 1.1 din 1997
JDK 1.2 din 1998
JDK 1.3 din 2000
JDK 1.5 din 2006
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
7
JDK 1.6
JDK 1.7

Un astfel de kit este "free" i se gsete n site-ul lui Sun JavaSoft
ORACLE:
http://www.oracle.com/technetwork/java/index.html.

Java Developer's Kit conine utilitare software necesare pentru crearea i
dezvoltarea aplicaiilor:
javac - compilatorul Java
java interpretorul aplicaiilor Java
jdb - depanatorul Java
javadoc - programul de documentare Java
appletviewer - utilitar pentru vizualizarea applet-urilor Java
javap - dezasamblor pentru clase Java etc.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
8
Exist medii de dezvoltare integrate (comerciale) pentru realizarea
programelor Java cum ar fi:
Symantec Visual Cafe sau un compilator Just-In-Time
Borland JBuilder, (3.0, 3.5, 4.0 i BC++5.0/Java)
SuperCede
Rog Wave JFactory
Natural Intelligence Roaster
SunSoft Java WorkShop
Kalimantan - Kalimantan
WebGain Visual Cafe (3.0, 4.0 i 4.1)
Metrowerks Code Warrior Pro 4 i 5
IBM Visual Agew for Java 3.0 i 3.5
Sun Forte 2.0 Community Edition
Eclipse 3.0, 3.1. 3.2. etc. (free)
NetBeans IDE 6.9.1 (free)
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
9
3. Extensii standard

Java API conine biblioteci de coduri compilate care pot fi utilizate n
programe. API este acronimul de la Application Programing I nterface
adic interfaa de programare a aplicaiilor.

Firma Sun Microsystems a grupat mediile corespunztoare platformei Java 2
n trei tehnologii:
J2ME (Java 2 Micro Edition)
J2SE (Java 2 Standard Edition)
J2EE (Java 2 Enterprise Edition).




Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
10
Fiecare dintre ele este nzestrat cu utilitarele necesare pentru dezvoltarea
produselor:
JVM (Java Virtual Machines) care se potrivete la toate aplicaiile
Biblioteca API care este specializat pentru fiecare categorie de aplicaii n
parte
Utilitare pentru dezvoltare i dispozitive pentru configurare
Un profil care este o specificare a setului minim de API-uri util pentru
diferite tipuri de dispozitive (cum ar fi telefoane cu ecran, dispozitive de
control pentru automobile, asistent digital etc.)

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
11
Tehnologia J2ME se adreseaz unei arii vaste de aplicaii.
Tehnologia CDC (acronim de la Connected Device Configuration)
standardizeaz o JVM portabil, destinat utilizrii la dispozitive electronice
nglobate care sunt caracterizate de existena unor resurse mai modeste cum
ar fi:
Procesoare cu 32 de bii
Memorie 2Megabii sau mai mult (RAM + ROM)
Conectare la un tip anume de reea
Interfa cu utilizatorul avnd diferite grade de complexitate.

Sunt cunoscute i utilizate urmtoarele extensii: Enterprise API,
Commerce API, Management API, Server API, Media API, Security API,
Java Beans API, Embedded API.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
12
Enterprise API
Aceasta este extensia limbajului Java pentru ntreprinderi i const dintr-un
mecanism formal pentru conectarea sistemelor informaionale. Enterprise
API are urmtoarele subseturi:
JDBC (acronim de la Java Database Connectivity) conexiunea limbajului
Java cu bazele de date,
IDL (acronim de la Interface Definition Language) limbaj pentru
definirea interfeelor,
RMI (acronim de la Remote Method Invocation) invocarea (apelarea)
metodelor de la distan.

JDBC definete o interfa structurat pentru baze de date SQL (acronim de
la Structured Query Language). Aceasta se bazeaz pe un protocol pentru
manevrarea datelor. JDBC API ofer procedee consistente pentru accesarea
i manevrarea datelor din bazele de date.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
13
IDL ofer un mod pentru conectarea programelor client la reeaua de
calculatoare folosind un protocol industrial standard pentru comunicaii
client/server. Are componentele:
cadru de dezvoltare pentru client care permite proiectarea miniaplicaiilor
sau a aplicaiilor independente,
cadru de dezvoltare pentru serveri (destinai aplicaiilor Java pentru reea),
utilitare de dezvoltare care genereaz automat coduri stub pentru interfee
RMI.

RMI definete interfee pentru apelarea metodelor (funciilor) obiectelor
distribuite.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
14
Commerce API
Ofer soluii pentru dezvoltarea tranzaciilor comerciale pentru Web.
Aceasta are componente pentru:
infrastructur permind construirea unui cadru arhitectural pentru
interaciunile elementelor constitutive ale sistemului informaional,
baze de date de informare (engl.: information database) coninnd metode
de plat i metode de expediere facilitnd operaiile de criptare i schimb
de informaii pentru furnizorii de servicii comerciale,
casete de plat (engl.: payment cassetes) care sunt nite module software
implementnd protocoale financiare specifice permind astfel introducerea
modului de plat electronic.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
15
Management API
Ofer soluii pentru sisteme integrate de gestiune. Are n acest scop
interfee, clase i miniaplicaii. Utiliznd Management API se obine o
abordare unitar pentru rezolvarea problemelor complexe, dezvoltarea sau
ntreinerea resurselor i crearea unor servicii pentru o reea eterogen.
Management API include urmtoarele componente:
Admin View Module (AVM) modulul de vizualizare administrativ este o
extensie la Java Abstract Window Toolkit (AWT) care ofer faciliti
pentru crearea aplicaiilor integrate de gestiune,
Base object interfaces interfeele obiectelor de baz definesc tipurile
obiectelor nucleului folosit pentru resurse distribuite i servicii pentru un
sistem de gestiune,
Management container interfaces - interfeele containerelor de gestiune
definesc un mod pentru gruparea mpreun a obiectelor n scopul unei mai
bune organizri facilitnd abordarea orientat pe grupuri pentru controlul
gestionrii resurselor n sisteme complexe,
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
16
Management notification interfaces interfeele de semnalare pentru
gestiune definesc un fundament central pentru gestionarea evenimentelor,
Manages date interfaces interfeele pentru date gestionate ofer un mod
pentru conectarea atributelor obiectelor gestionate, cu o baz de date
relaional folosind JDBC, asigurnd o legtur transparent ntre resursele
gestionate i bazele de date externe,
Management protocol interfaces interfeele pentru protocoale de gestiune
sunt folosite de Java Security API i Java RMI pentru securitatea obiectelor
distribuite,
Simple Network Management Protocol (SNMP) interfaces interfeele
protocolului pentru gestiunea reelei ofer soluii pentru rezolvarea
problemelor de comunicare ntre diferite tipuri de reele,
Applet integration intefaces interfeele pentru integrarea miniaplicaiilor
specific modurile de introducere a ale acestora n aplicaiile de gestiune.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
17
Server API

Compania JavaSoft ofer prin acest pachet alternative pentru rezolvarea
aplicaiilor care folosesc server-i. Astfel crete funcionalitatea aplicaiilor
oferind un suport pentru:
administrare
controlul accesului i
tratarea dinamic a resurselor.
Se realizeaz astfel un cadru pentru extinderea server-ilor i servlet-urilor.
Un servlet este un obiect Java care extinde funcionalitatea unui server de
informare. Servlet API ofer extinderile necesare pentru crearea servlet-
urilor i pentru integrarea lor cu serverii de informare. Un servlet API este
echipat astfel nct s poat trata complet relaiile dintre servlet i clieni. Se
creeaz astfel posibilitatea ca programele s fie simple i stabile.


Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
18
Media API

Iniial Java API admitea introducerea n aplicaii i miniaplicaii numai de
imagini stocate n fiiere gif sau jpg. Sunetele care puteau fi redate (numai)
n miniaplicaii trebuiau s provin din fiiere cu extensia au. Media API
este proiectat s fie mai deschis i mai extensibil. Sunt adugate urmtoarele
subseturi:
Media Framework API trateaz funcionalitatea temporizrilor de nivel
cobort cerut de unele aplicaii. Sunt oferite i mecanisme de sincronizare
performante. Prin utilizarea acestor faciliti se poate sincroniza banda de
sunet a unui film cu imaginile corespunztoare. Acest subset servete la
crearea fluxurilor, comprimrilor i surselor de date live (n direct).
2D Graphics extinde funcionalitatea claselor AWT oferind un suport
puternic pentru primitivele graficii 2D i pentru o mare varietate de
dispozitive de ieire (ex., pentru imprimante). n acest subset sunt definite
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
19
ntr-un mod uniform modele grafice care creeaz funcii grafice ntr-o
singur structur.
Animation API folosete grafica 2D ca baz pentru implementarea
obiectelor grafice animate 2D sau sprites (spiridui). Sunt folosite
mecanisme de temporizare i sincronizare.
3D Graphics API ofer extensii cu performan ridicat pentru grafica
3D. Subsetul ofer un suport pentru limbajul VRML (acronim de la Virtual
Reality Modeling Language). Acest limbaj de modelare a realitii virtuale
permite afiarea unor pagini Web 3D interactive.
Video API servete pentru descrierea micrilor n Java. Este oferit un
suport pentru gestionarea i prelucrarea imaginilor Video fie ca flux, fie ca
scenariu memorat (stocat) pe un mediu.
Audio API este similar cu subsetul precedent, dar servete pentru audio.
Subsetul conine clase audio 3D i clase care faciliteaz eantionri i
sintetizri audio.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
20
MIDI API (acronim de la Musical Instrument Digital Interface) reunete
temporizarea evenimentelor muzicale din Java cu standardul MIDI. Se
definete un protocol bazat pe timp pentru comunicarea (semnalarea) i
stocarea evenimentelor cum ar fi cele care reprezint evenimente muzicale.
Share API definete un mod n care au loc n reea comunicaii
multiparty. Se ofer un suport pentru sincronizri i gestionarea sesiunilor.
Telephony API creeaz faciliti pentru interaciuni cu telefoanele. Printre
funciile subpachetul se regsesc cele necesare la crearea teleconferinelor
i identificarea apelatorului (engl.: caller ID).

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
21
Security API

Ajut la remedierea restriciilor miniaplicaiilor de a citi sau scrie din,
respectiv n fiiere locale. n plus, exist clase pentru rezolvarea problemelor
introducerii semnturii digitale i a autentificrii.
Criptografia cuprinde algoritmi i tehnici pentru aranjarea datelor astfel
nct s fie de nerecunoscut de ctre altcineva, diferit de destinatar.
Semntura digital este o tehnic de identificare electronic care are
aceleai scopuri ca i cea manual.
Autentificarea este un proces de verificare a unei aciuni pe baza unui
control al securitii.


Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
22
Java Beans API

Acesta este un pachet introdus cu scopul reutilizrii componentelor
software. Sunt introduse mecanisme pentru calcul distribuit fr s se
suprancarce cu un nucleu pentru realizarea lui. Sunt oferite soluii pentru
invocarea metodelor de la distan. JavaBeans include un suport pentru
specificarea proprietilor temporale.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
23
Embedded API

Conine un set minimal pentru realizarea funcionalitii Java destinat
utilizrii n sisteme nglobate. Sistemele nglobate sunt instalaii sau
echipamente care conin sisteme de calcul. Ca exemple se pot da mainile de
splat, automobilele, mainile unelte, echipamentele medicale,
echipamentele militare etc. care conin microprocesoare.
Multe sisteme nglobate nu au nevoie de ieiri grafice, prin urmare nu este
nevoie de pachetul java.awt care conine clase pentru interfee grafice.
Embedded API conine un limbaj, un utilitar i clase pentru realizarea
operaiilor intrare/ieire.



Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
24
4. Caracteristicile limbajului Java

Simplu
Au fost eliminate multe dintre trsturile existente n alte limbaje de nivel
(exemplu C) nalt care nu sunt neaprat necesare cum ar fi pointerii,
structuri, suprascrierea operatorilor, abloane, fiiere antet, motenirea
multipl etc.
A fost eliminat noiunea de adres explicit a unui obiect.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
25
Orientat pe obiecte
Se bazeaz pe programarea orientat pe obiecte.
Se utilizeaz clase pentru organizarea codului n module logice.
n momentul execuiei se creeaz obiecte cu aceste clase.
Clasele pot fi dezvoltate folosind motenirea simpl i agregarea.
Programele Java sunt modulare i flexibile.
JAVA este un limbaj complet orientat pe obiecte (OOP).
Un alt aspect pozitiv al acestui limbaj este acela c elimin pointerii (fapt
care duce la simplificarea modului de programare, precum i la
mbuntirea securitii programelor) i administreaz automat memoria.


Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
26
Tastat static
Toate claseele utilizate n program trebuie introduse n cod nainte de
utilizare. Ca urmare a tastrii programului se obine codul surs.

Compilat i interpretat
Programele Java sunt att compilate ct i interpretate. Dup terminarea
scrierii unui program Java, codul surs va fi compilat ntr-un format de nivel
intermediar (mediu), numit cod de octei (engl.: bytecode). Acest cod de
octei poate fi apoi rulat, fiind interpretat de mediul de execuie Java. Codul
de octei nu are nici o instruciune specific platformei. n timpul compilrii
se verific multe erori posibile care rmn nedetectate n alte limbaje.

Codul de octei este diferit de codul main. Codul main este reprezentat
printr-o succesiune de bii 0 i 1. Codurile de octei sunt seturi de
instruciuni care seamn mult cu codul scris ntr-un limbaj de asamblare.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
27
Calculatorul poate executa direct codul maina, ns codurile de octei
trebuie interpretate nainte de a fi rulate.

Codul main poate fi folosit numai pe platforma pentru care a fost
compilat.

Spre deosebire de acesta, codul de octei poate fi folosit pe orice platform
care folosete mediul de execuie Java corespunztor. Aceasta posibilitate
asigur neutralitatea limbajului Java din punct de vedere al arhitecturii
hardware. Independena fa de maina pe care este executat programul
constituie marele avantaj al limbajului Java fa de alte limbaje i i confer
o portabilitate maxim.



Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
28
Interpretorul
Interpretorul Java este un program care preia fiiere cu coduri de octei.
El transform codul de octei ntr-un set de instruciuni (n cod main) pe
care calculatorul le poate nelege.

Procedeul folosit pentru crearea codului de octei const din compilarea
codului surs pentru un calculator virtual (inexistent). Acest calculator
imaginar este numit Maina Virtual Java (engl.: Java Virtual Machine, cu
acronimul JVM) i exist doar n memoria calculatorului.

Operaia Editare Compilare Interpretare
(i execuie)
Utilitarul Editor de
texte
Compilator Java Interpretor Java
Rezultatul Fiier surs Fiier executabil
(cod de octei)
Execuie program Java
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
29
Compilatoarele J ust-I n-Time produc la cere instruciuni n cod main
(adic rezultatul este un cod executabil).
Nivelurile de interaciune ale unui program JAVA sunt:

Aplicaia utilizatorului
Obiectele i clasele Java API
Maina virtual Java
Sistemul de operare: Unix, Windows, etc.


Neutru din punct de vedere arhitectural
Programele Java sunt portabile, adic pot fi executate pe platforme diferite
sub diverse sisteme de operare. Neutralitatea din punctul de vedere al
arhitecturii este asigurat prin implementarea unui interpretor Java pentru
fiecare arhitectur.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
30
Portabil
Noiunea de portabilitate este legat de cea precedent. n Java toate datele
primitive (ntregi, virgul mobil etc.) sunt de dimensiuni diferite n funcie
de maina i sistemul de operare pe care este executat programul.
n plus, aplicaiile Java sunt portabile deoarece compilatorul a fost scris n
Java, iar mediul de execuie respect standardul POSIX acordul C.

Multifir
Programele Java pot avea mai multe fire de execuie.

Cu administrarea automat a memoriei
Programele Java se bazeaz pe obiecte care sunt create prin instaierea
claselor. Eliberarea spaiului ocupat de acestea cnd nu mai este nevoie de
ele se face automat. n acest scop exist colectorul de reziduuri (engl.:
garbage collector) care elimin spaiul alocat obiectelor care nu mai sunt
necesare.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
31
Dinamic
Deoarece nu exist faza de legare dup compilare, problema rezolvrii
adreselor n Java este amnat pn n momentul execuiei. Abia atunci
interpretorul Java realizeaz legarea numelor din clase i plaseaz obiectele
n memorie. Prin urmare, n Java nu se calculeaz desfurarea (aeazarea)
obiectelor n memorie dect n momentul execuiei. n cazul adugrii unei
noi metode ntr-o clas, nu trebuie recompilate toate clasele care utilizeaz
aceast clas, ci numai acelea care utilizeaz metoda respectiv.

Obiectele se creeaz i se distrug n timpul execuiei programului.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
32
Robust
Interpretorul Java verific toate accesrile realizate n cadrul programului
(indiferent dac sunt accesate obiecte interne sau externe, software sau
hardware). Dac apar erori sau situaii anormale se semnaleaz aceste
excepii evitndu-se blocarea execuiei programului. Java nu permite
manevrarea direct a pointer-ilor. Aceasta face imposibil suprascrierea
memoriei cu date corupte. De asemenea, Java utilizeaz n timpul execuiei
colectorul de reziduuri n loc de eliberarea explicit a memoriei (ca n C)
evitndu-se astfel multe necazuri.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
33
Distribuit
Limbajul Java a fost conceput pentru a rezolva problemele legate de
conexiunea n reea. Programele Java pot utiliza clase (ca URL de exemplu)
pentru accesarea unor servere sau alte obiecte de la distan. n Java se pot
scrie aplicaii independente (engl.: stand alone applications) i
miniaplicaii (sau applet-uri) care s fie incluse n pagini HTML n servere
de Web i executate pe mainile utilizatorilor. Limbajul Java include un set
de biblioteci de reea care utilizeaz protocolul TCP/IP (pentru conexiunea
n reea) i protocoale pentru transmiteri de informaii ca HTTP i FTP.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
34
Sigur
Sistemul Java efectueaz controale i impune restricii privind accesrile
unor componente eliminnd astfel posibilitatea de rspndire a viruilor sau
producerea unor daune de ctre utilizatori ru intenionai. Neavnd pointeri
se poate controla bine codul care exist n mediul Java. Pentru aceasta s-a
introdus conceptul de verificare a byte-code-ului. Se asigur c:
referinele nu-i depesc limitele
nu se realizeaz transferuri ilegale de obiecte
nu se depete superior sau inferior stiva (pentru operanzi)
toi parametrii transmii funciilor sunt de tipul corespunztor.

n Java clasele sunt unitile de execuie de baz, iar securitatea este
implementat la cest nivel. Clasele din sistemul local sunt prelucrate separat
de cele din alte sisteme. Aceasta previne ca s fie suprascris codul local de
ctre alte sisteme cu coduri care nu sunt de ncredere.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
35
Pentru creterea siguranei, miniaplicaiile (ncrcate din Web) sunt
monitorizate fiind mpiedicate s scrie n fiiere ale utilizatorului sau s
apeleze metode native. Conexiunea printr-un soclu de reea folosind
protocolul TCP/IP nu poate fi dect de la calculatorul propriu la serverul din
care a fost ncrcat miniaplicaia.

Exist Security Manager!
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
36
Extensibil
Programele Java accept metode native, adic funcii scrise n alte limbaje
de programare (asamblare, C etc). Acestea sunt legate dinamic n timpul
execuiei obinndu-se astfel performane mai bune.

Concluzie: Limbajul J AVA a fost proiectat pentru:
folosirea n medii de reea (distribuite);
asigurarea unei performane ridicate;
reutilizarea codului;
asigurarea securitii restricii de securitate implementate n structura
de baz a limbajului.

Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
37
Compararea cu limbajul C
Spre deosebire de limbajul C, n Java nu exist:
pointeri
fiiere antet separate
funcii independente
motenire multipl.

Cu toate aceste diferene, Java seamn destul de mult cu limbajul C++.
La ntrebarea dac s se utilizeze Java sau C++, se pot afirma urmtoarele:
Att Java ct i C++ servesc la implementarea unor probleme similare.
Exist clase att pentru Java ct i pentru C++ n scopul implementrii unor
aplicaii similare.
Implementrile unor aplicaii n Java nu duc la ridicarea vitezei de execuie
fa de implementrile n C sau C++, ba chiar pot duce la reducerea
acesteia din cauza controlului accesului.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
38
Adausul de siguran pe care l aduce Java se face cu preul scderii vitezei
de execuie a programelor.
Pentru ridicarea vitezei de execuie a aplicaiilor concepute n Java se pot
utiliza metode native (scrise n limbaje de asamblare, sau chiar C) pentru
anumite seciuni critice din punctul de vedere al timpului.
Timpul necesar crerii unei aplicaii n Java este mai sczut dect n cazul
implementrii n C i C++ .
Un program scris n Java este mult mai uor de neles dect unul similar
scris n C sau C++. Aceasta face ca actualizarea i ntreinerea unor
programe scrise n Java s fie mai simpl.
Eliminarea necesitii distrugerii explicite a obiectelor ca i a eliminrii
cerinei de eliberare a spaiilor de memorie alocate, face ca programele
scrise n Java s fie mai uor de conceput i s fie de calitate superioar
celor din C.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
39
Fiind independente de platform, programele Java se pot distribui mai uor
dect cele similare scrise n C. Applet-urile pot fi actualizate mai uor
dintr-un server de Web.
Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
40
Domeniile de utilizare ale aplicaiilor Java
Cele mai semnificative aplicaii ale limbajului Java sunt n:
aplicaii de control
sisteme nglobate (ncorporate) - aplicaii nglobate
sisteme distribuite n general
sisteme de control distribuit
conexiuni cu sistemele de baze de date
construirea de interfee grafice
aplicaii care necesit animaie, simulri etc.
aplicaii n pagini web





Tiberiu Leia: Ingineria sistemelor de programe Programarea n limbajul Java - Introducere
41




*
****
***END***
****
*

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