0% au considerat acest document util (0 voturi)
250 vizualizări31 pagini

Curs01 Java 1

Documentul prezintă informații despre tehnologia Java și componentele sale, implementările limbajului Java de către firmele Sun și IBM, precum și cele trei ediții ale platformei Java 2 dezvoltate de Sun: J2ME, J2SE și J2EE.

Încărcat de

Roby Nica
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PPT, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
250 vizualizări31 pagini

Curs01 Java 1

Documentul prezintă informații despre tehnologia Java și componentele sale, implementările limbajului Java de către firmele Sun și IBM, precum și cele trei ediții ale platformei Java 2 dezvoltate de Sun: J2ME, J2SE și J2EE.

Încărcat de

Roby Nica
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PPT, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 31

Programare Java

Prof.dr.ing. Nicu Bzdoac

1 6/15/2017
Examen/Acordarea notei finale
Notare :
Midterm 40% - 4 puncte -
Examen final 30% - 3 puncte
Teme primite la curs 10% - 1 punct
Activitate laborator 20 % - 2 puncte
Bonificatii:
Varianta multimedia (flash,avi, animatii, comentarii) pentru fiecare curs prezentat
de profesor +0,2 puncte pentru fiecare prezentare realizata si predata la cursul
imediat urmator
Implicarea in realizarea aplicatiilor prezentate in cadrul cursului + pana la 1 punct
Concurs
Structura mobila realizata EXCLUSIV din materiale recuperate:
unitati de CD/DVD uzate; carcase de calculatoare, motoare
de masini de calculat, alte motoare de cc, jucarii,
telecomenzi jucarii, etc. Structura trebuie sa se deplaseze
independent pe o distanta de 30 m.
Criterii de evaluare:
Design structura 0 20 p
Pret redus 0 10 p
Prezentare multimedia a echipei si a proiectului 0 -20 p
Timpul cel mai scurt de parcurgere a distantei 0 -10 p
Functionalitate 60 p
ECHIPE 2 studenti robotica+2
studenti mecatronica+2 studenti
multimedia = 12 echipe
Evolutia concursului:
Alcatuirea echipelor 11 Martie 2010
Prezentare multimedia membrii echipei draft 18.03.2010
Prezentare propunere design arhitectura 25.03.2010
Prezentare propunere structura constructiva motoare 23.04.2010
Prezentare propunere structura constructiva comanda 30.04.2010
Prezentare multimedia proiect draft 14.05.2010
Concurs 28.05.2010
Nerespectarea termenelor duce la o depunctare de 10
puncte pe echipa
Premii:
Premiul I: 180 lei/echipa + plus 2 puncte pentru fiecare
student la examenul de Java
Premiul II: 120 lei/echipa + plus 1,5 puncte pentru fiecare
student la examenul de Java
Premiul III: 60 lei/echipa + plus 1 punct pentru fiecare
student la examenul de Java
Cuvinte importante:
- tehnologia Java si componentele sale: masina virtuala; limbajul
Java propriu-zis; compilatorul Java; biblioteca de clase Java;
- implementarea firmei Sun a limbajului Java: Platforma J2SE (Java
2 Platform, Standard Edition);
- tipuri de programe implementate de Java: aplicatii Java, applet-
uri;
- etapele dezvoltarii unei aplicatii Java; structura unei aplicatii Java;
metoda main( );
- utilizarea claselor de obiecte din pachetele predefinite (pachete
API) Java; directiva import ; instructiunea package;
- elemente de baza ale limbajului Java: identificatori, variabile,
tipuri primitive de date; constante;
- citirea datelor de la tastatura si afisarea datelor pe ecran: metodele
print, println, readLine, read.

7 6/15/2017
Notiuni introductive
Istoric Java:
- proiectul Java a fost initiat inca din 1990 dar firma Sun Microsystems a
facut publica specificatia noului limbaj abia in 1995 la SunWorld in San Francisco;
parintele noului limbaj Java a fost James Gosling, cunoscut ca autor al editorului
emacs; numele initial al limbajului a fost Oak, numele unui copac care crestea in
fata biroului lui James Gosling; acest nume a fost abandonat ulterior si inlocuit cu
Java;
- specificatia noului limbaj Java a fost facuta publica, de catre firma Sun
Microsystems, in anul 1995 la SunWorld in Sun Francisco; in momentul lansarii
sale, Java a revolutionat Internetul, deoarece a fost gandit pentru a imbunatati
continutul paginilor web prin adaugarea unui aspect dinamic: animatie, multimedia
etc;
- incepand cu anul 1998, cand a aparut versiunea 2 a limbajului (Java 2
Platform), Java a fost extins, acoperind si alte directii de dezvoltare: programarea
aplicatiilor enterprise (aplicatii de tip server) precum si a celor adresate
dispozitivelor cu resurse limitate, cum ar fi telefoanele mobile, pager-e sau PDA-uri
(mici dispozitive de calcul, de dimensiuni putin mai mari decat ale unui telefon
mobil, cu facilitati de agenda si capabile sa execute aplicatii intr-un mod relativ
asemanator cu cel al unui PC).
8 6/15/2017
Lansarea versiuni 2 a limbajului Java a adaugat multe facilitati, dar limbajul a
pastrat si posibilitatile de a crea aplicatii standard, de tipul aplicatiilor in linie
comanda sau a aplicatiilor bazate pe GUI (Graphical User Interface).
Caracteristicile de baza ale limbajului Java
- Java este un limbaj simplu de folosit. Aceasta caracteristica poate fi
considerata ca o reactie directa la complexitatea considerabila a limbajului C/C++.
Au fost indepartate din Java aspectele cele mai derutante din C++ precum
supraincarcarea operatorilor, mostenirea multipla sau pointer-rii.
- Java este independent de arhitectura calculatorului pe care lucreaza si
foarte portabil. Compilatorul Java genereaza o secventa de instructiuni ale unei
masini virtuale Java. Executia aplicatiilor Java este interpretata. Singura parte din
mediul de executie Java (JRE) care trebuie portata de pe o arhitectura pe alta
cuprinde interpretorul Java 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. De altfel, mediul de
executie Java (JRE) este scris in C ceea ce il face foarte portabil.
- Interpretorul Java este gandit sa lucreze pe masini mici (memorie mica
de ordinul sutelor de KB), precum ar fi procesoarele cu care sunt dotate aparatele
casnice si telefoanele mobile.

9 6/15/2017
- Limbajul Java este 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 caracteristica 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.
- Limbajul Java este distribuit, avand implementate biblioteci pentru
lucrul in retea.
- Limbajul Java este un limbaj cu securitate ridicata.
- Java are inclus suport nativ pentru aplicatii care lucreaza cu mai multe
fire de executie (programare paralela si concurenta). Acest suport este independent
de sistemul de operare.

10 6/15/2017
Tehnologia Java si componentele sale
In tehnologia Java sunt cuprinse patru componente:
1. Masina virtuala, denumita JVM (Java Virtual Machine) care interpreteaza
fisierele cu extensia .class ce contine bytecode.
Bytecode reprezinta cod compilat care este procesat de un program, denumit
masina virtuala, si nu cod executabil care ruleaza pe masina reala ce dispune de un
procesor harwarde.
Bytecode este format din instructiuni generice care sunt convertite (transformate)
de masina virtuala in instructiuni specifice procesorului masinii reale. De aceea se
spune ca aplicatiile Java sunt independente de platforma (hardware si software).
Masina virtuala Java mai este denumita si interpretor Java.
2. Limbajul Java propriu-zis. Limbajul Java este orientat pe obiecte si se
aseamana din punct de vedere al sintaxei cu C++.
3. Un compilator care genereaza fisiere cu extensia .class. Compilatorul Java
traduce instructiunile scrise in limbajul Java (stocate in fisiere cu extensia .java) in
instructiuni generice bytecode(stocate in fisiere cu extensia .class) care sunt
intelese de masina virtuala.

11 6/15/2017
4. Biblioteca de clase Java, denumita si Java API. Aceasta biblioteca contine un
set de componente utile care pot fi reutilizate de programatori in diverse aplicatii
informatice.
Implementari ale limbajului Java
Cele mai importante implementari ale limbajului Java sunt realizate de firmele Sun
si IBM.
Microsoft a creat propria sa implementare Java, disponibila numai pe platforme
Windows.

12 6/15/2017
Implementarea firmei Sun a limbajului Java
Implementarea Java a firmei Sun este cea mai frecvent utilizata.
Firma Sun a grupat tehnologia Java in trei editii:
1. Java 2 Platform, Micro Edition (platforma J2ME) reprezinta mediul de
dezvoltare al aplicatiilor pentru dispozitive cu resurse mai reduse decat un calculator
PC obisnuit. Printre aceste dispozitive se pot enumera: carduri Smart, pager-e
telefoane mobile, anumite tipuri de televizoare, PAD-uri (Personal Digital
Assistant).
2. Java 2 Platform, Standard Edition (platforma J2SE) reprezinta mediul de
dezvoltare al aplicatiilor de tip client-side (care ruleaza pe PC-ul client).
3. Java 2 Platform, Enterprise Edition (platforma J2EE) reprezinta mediul de
dezvoltare al aplicatiilor de tip server-side (care ruleaza pe un server si pot fi
accesate de mii de clienti simultan); usureaza enorm crearea de aplicatii internet
industriale scalabile.

13 6/15/2017
Platforma J2SE (Java 2 Platform, Standard Edition)
Produsul informatic (software-ul) care implementeaza platforma J2SE si care este
folosit pentru dezvoltarea de aplicatii specifice acesteia este J2SDK (Java 2
Software Development Kit, Standard Edition) in diverse versiuni pe care le
scoate firma si care este livrat gratuit (este un soft liber).
Pentru a fi la curent cu ultimele versiuni ale produsului J2SDK se poate accesa
adresa de internet http://java.sun.com.
Produsul J2SDK include uneltele de creare a programelor Java (compilatorul si alte
unelte necesare pentru dezvoltare de programe) si unelte de executie ale acestora
(masina virtuala, biblioteca de clase Java API etc). Cele mai importante unelte
incluse in J2SDK sunt:
- javac - compilatorul Java;
- java - interpretorul Java;
- appletviewer - folosit pentru testarea applet-urilor (aplicatii care ruleaza
dintr-un navigator de internet).
Pachetul Java 2 SDK este un set de programe care ruleaza, din lina de comanda a
sistemului de operare, utilitare bazate pe text, care nu au nevoie de o interfata
grafica pentru utilizator.
14 6/15/2017
Produsul informatic J2RE (Java 2 Runtime Environment, Standard Edition)
este folosit numai cand se executa aplicatii scrise in Java. El este destinat celor care
doresc sa poata executa aplicatii Java, fara a avea nevoie de intreg mediul de
dezvoltare.
J2RE este un produs care poate fi instalat separat, dar si ca o componenta a J2SDK.
Mediul de programare Java si medii integrate IDE (Integrated
Development Environments).
Pachetul Java 2 SDK este destul de departe de instrumentele de programare moderne
denumite si medii integrate de dezvoltare de programe (IDE).
Folosind un mediu IDE, programatorului ii sunt puse la dispozitie toate elementele
de care are nevoie pentru a crea aplicatii Java profesionale: debugger-e pentru
executarea pas cu pas a aplicatiilor, modalitati de a vedea in orice moment ierarhia
de clase si metode existente in cadrul unui proiect, completarea automata a codului,
compilare incrementala (codul este compilat in timp ce este scris) etc.
Exista mai multe astfel de medii IDE care pot ingloba pachetul Java 2SDK cum ar
fi:Eclipse, Forte for Java, JBuilder, NetBeans IDE.

15 6/15/2017
Tipuri de programe implementate de Java
Cu ajutorul limbajului Java se pot dezvolta doua tipuri de programe:
1. Programe Java care se executa individual prin intermediul unui interpretor Java.
Acestea se incadreaza in programele clasice scrise in diverse limbaje de
programare, cum ar fi:C/C++, Pascal etc. Acest tip de programe Java sunt denumite
aplicatii.
2. Programe Java care se executa in interiorul unui navigator Internet, dintr-un
document HTML. Acest tip de programe Java sunt denumite applet-uri.

16 6/15/2017
Etapele dezvoltarii unei aplicatii Java
1. Editarea setului de instructiuni de programare cu ajutorul unui editor de texte.
In acest fel este creat un fisier sursa, care are extensia .java.
2. Compilarea programului. Pentru aceasta operatie se lanseaza in executie un
program special, denumit compilator Java. Compilatorul analizeaza textul sursa al
programului din punct de vedere sintactic, semnaland eventualele erori. Daca
programul nu contine erori sintactice, compilatorul traduce acest program in codul
masina pentru masina virtuala Java (un fel de calculator intr-un alt calculator).
Rezultatul compilarii este unul sau mai multe fisiere de tip bytecode- o secventa
de instructiuni de asamblare pentru masina virtuala Java. Fisierul bytecode nu
depinde de masina gazda si de sistemul de operare pe care va fi executat programul.
Masina virtuala mai este cunoscuta si ca interpretor Java sau executor (runtime)
Java.
Extensia fisierului bytecode rezultat in urma compilarii are extensia .class.
3. Conversia (transformarea), de catre interpretorul Java, a instructiunilor
bytecode in instructiuni inteligibile masinii gazda care apoi sunt executate.
Conversia are loc la lansarea executiei si anume instructiune cu instructiune.
In acest mod este asigurata portabilitatea si independenta de platforma.Un
dezavantaj poate fi considerat timpul mai mare de executie.
17 6/15/2017
Scrierea
instructiunilor
programului-sursa
(.java)
Conversia
fiecarei
instructiuni Executia
Compilarea bytecode in fiecarei
Da Da
programului- Cu succes? instructiune Cu succes? instructiuni cu
sursa cu executabila pe ajutorul
ajutorul masina gazda cu interpretorului
compilatorului ajutorul Java (.class)
Java interpretorului
Java (.class)
Nu Nu

Modificarea
instructiunilor
programului

Procesul de compilare si executie a unei aplicatii Java

18 6/15/2017
Ca multe alte limbaje de programare, Java utilizeaz un complilator care
convertete codul surs de nivel nalt, scris de programator, n program
executabil. n general codul main oferit de compilator poate fi executat sub o
platform Windows 95 sau de ctre procesoarele din familia Intel, sau din
familia Motorola. Compilatorul Java genereaz un cod independent de
arhitectur - bytecodes. Acest cod va fi rulat i executat de ctre o main
virtual - VM- implementat n marea majoritate soft.
n ultima perioad numeroase companii au anunat c lucreaz la implementarea
unor procesoare hard Java, procesoare care vor mbunti n mod simitor
performaele programelor.
Fiierele bytecodes sunt denumite fieire de tip clas - class files - deoarece
conin o singur clas Java. Pentru moment se poate considera c o clas
conine un grup de rutine i date.
GraphWindow.java
GraphWindow.class
import java.awg.Frame; CA FE BE 00
02 00 2A 41
class GraphWindow Compilator 11 25 39 7E
extends Frame ( Java .
. .
.

Codul surs Java Bytecodes Java

19 6/15/2017
Pentru a executa bytecod-ul Java ncrcat din reea sau de pe disc, maina virtual
utilizeaz un class loader. Fiecare clas este verificat de un bytecode verifier care
examineaz dac formatul este corect i nu acceseaz zone de memorie interzise. Chiar
dac pentru aceast verificare se consum timp, n realitate acest lucru reduce timpul
total de execuie, deoarece o dat validat programul, acesta nu va mai fi verificat la
fiecare rulare. Elementul de execuie al mainii virtuale ruleaz apoi bytecod-ul
programului. Acest interpreter poart numele de interpreter Just in Time. Aceast
tehnic convertete bytecodul n cod main client imediat dup execuie.

20 6/15/2017
Structura unei aplicatii Java
O aplicatie Java este compusa din una sau mai multe clase care interactioneaza
intre ele prin intermediul metodelor. In grupul de clase, care formeaza o aplicatie
Java, trebuie sa existe o clasa care sa contina o metoda statica avand numele main.
Atunci cand se executa o aplicatie Java, masina virtuala va cauta si invoca automat
metoda statica avand numele main.
Nota: Metoda main poate fi considerata ca fiind echivalentul Java a functiei main
din C/C++.
Cel mai simplu program Java (care nu face nimic) arata astfel:
class NuFacNimic
{
public static void main (String [ ] args)
{}
}
Nota: Tipul parametrilor metodei (functiei) main cat si tipul metodei, static void,
sunt obligatorii.
21 6/15/2017
Metodele folosite in programele Java reprezinta in mare masura echivalentul
functiilor sau procedurilor din alte limbaje de programare. O definitie completa a
conceptului de metoda va fi data intr-o lectie separata cand se va discuta despre
conceptele de clasa si obiect.
In aceasta lectie prezentam doar cateva notiuni elementare despre metode pentru a
putea scrie functii de genul celor din limbajul C/C++ pe care sa le folosim in
cateva programe simple.
O metoda se defineste prin:
- antetul metodei;
- corpul metodei.
Antetul metodei contine numele metodei, tipul valorii returnate de metoda si o
lista de parametri (eventual vida), fiecare avand un tip precizat, prin care metoda
comunica cu exteriorul ei, incadrata intre paranteze rotunde:
Corpul metodei este constituit din declaratii si instructiuni cara executa diferite
sarcini. Toate declaratiile si instructiunile din corpul functiei sunt incadrate intre
paranteze acolade.

22 6/15/2017
Sintaxa definirii unei metode este:
<tip_rezultat> nume_metoda (<lista_parametri>)
{ <corpul_functiei> }
Nota: Prin prefixarea metodelor cu ajutorul cuvintelor cheie public static se poate
spune ca metodele sunt aproape similare cu functiile din limbajul C. Aceasta tehnica
nu trebuie utilizata insa in mod abuziv.
Instructiunea return este utilizata pentru a intoarce o valoare catre codul apelant.
Sintaxa instructiunii return este:
return [<expresie>];
unde:
- <expresie> - specifica valoarea returnata de metoda; in anumite situatii pentru
iesirea fortata dintr-o metoda care are tipul void se foloseste instructiunea return fara
<expresie>.
Daca tipul metodei este void atunci nu se returneaza nici o valoare si deci
instructiunea return nu este necesara.
La apelul unei metode parametrii actuali (reali) sunt trecuti in parametrii formali
utilizand exclusiv transmiterea prin valoare.
23 6/15/2017
Nota: Java permite supraincarcarea (overloading) numelui metodelor. Aceasta
inseamna ca mai multe metode cu acelasi nume pot fi declarate in cadrul aceleiasi
clase atata timp cat lista de parametrii formali difera ca numar si tip.
Utilizarea claselor de obiecte din pachetele predefinite (pachete API)
Java
Pot exista unele operatii care sunt frecvent utilizate in cadrul unei aplicatii Java.
(cum ar fi: citirea datelor, scrierea datelor, extragerea radicalului, desenarea de
obiecte grafice etc) pentru care nu exista instructiuni specifice ale limbajului Java.
Din acest motiv, s-au construit pachete predefinite de clase de obiecte (pachete
API) (elaborate de firma proiectanta a mediul de programare folosit) care contin
colectii de clase de obiecte de utilitate generala grupate pe categorii.

24 6/15/2017
Mediul de programare J 2 SDK ofera peste 70 de pachete predefinite, printre care,
mai des utilizate sunt:
- java.lang care ofera clase fundamentale pentru limbajul Java: clasa
Integer, clasa Math, clasa System clasa String etc;
- java.io care ofera modalitati de citire/scriere a datelor prin intermediul
fluxurilor de date, a fisierelor etc;
- java.util care contine clase pentru utilizarea colectiilor de date abstracte
de tip stiva si coada, pentru manevrarea datelor calendaristice si a timpului;
- java.util.jar pentru citirea/scrierea fisierelor in format jar (Java Archive);
- java.math care ofera clase specializate in calcul matematic;
- java.text care ofera clase pentru manevrarea textului, a datelor
calendaristice, a timpului si a mesajelor intr-o maniera independenta de limba
utilizata;
- java.net care pune la dispozitie clase pentru implementarea aplicatiilor
de retea.

25 6/15/2017
Directiva import pentru utilizarea claselor din pachetele API Java in propria
aplicatie.
Sa presupunem ca se doreste folosirea unei clase oarecare C dintr-un pachet P.
Atunci referirea la acea clasa in cadrul programului se face cu numele P.C, adica
plasand numele pachetului urmat de semnul punct (.) inaintea numelui clasei.
Utilizarea permanenta a numelui pachetului din care fac parte clasele poate crea
dificultati de scriere a programului. Pentru a evita acest lucru se foloseste directiva
import.
Sintaxa directivei import este:
import <nume_pachet>.<nume_clasa>;
sau
import <nume_pachet>.*;
Pentru a doua forma a directivei, toate clasele din pachet vor putea fi abreviate cu
numele lor neprecedat de numele pachetului.
Directivele import trebuie sa apara inainte de orice declarare a unei clase. Pachetul
java.lang este automat inclus in intregime. Acesta este motivul pentru care putem
folosi prescurtari de genul Integer.parseInt ()

26 6/15/2017
Crearea de pachete cu clase de obiecte proprii aplicatiei. Instructiunea
package
Daca dorim sa includem o clasa de obiecte intr-un pachet trebuie sa realizam
urmatoarele:
- sa scriem o instructiune package inaintea unei eventuale directive
import;
- apoi, sa stocam fisierul cu extensia .class ce contine clasa respectiva in
director care are numele pachetului.
Sintaxa instructiunii package este:
package <nume_pachet>;
Observatie: In cazul folosirii IDE NetBeans, instructiunea package este inclusa
automat, atunci cand se creaza o noua aplicatie Java (proiect Java).

27 6/15/2017
Interfata IDE NetBeans 6.8
Navigatorul proiectului Fereastra de afisare a datelor de iesire si Fereastra de editare a codului
de introducere a datelor de la tastatura

28 6/15/2017
Crearea unui proiect Java folosind IDE NetBeans

Pasul 1 - Alegerea tipului de proiect java

29 6/15/2017
Pasul 2 - Stabilirea numelui si a locatiei proiectului

30 6/15/2017
ntrebri
Enumerai 3 motive pentru care limbajul Java este considerat
potrivit pentru aplicaii Web.
Care este diferena ntre un applet Java applet i o aplicaie Java
independent?
De ce applet-urile Java sunt considerate platforme neutre?
Cum lucreaz un applet Java ntr-un document HTML?
Cum lucreaz un program Java?
Ce nelegei prin protocol?
Care sunt cele mai rspndite protocoluri utilizate n Internet?
Care este diferena dintre mediul Java i mediul C++?

31 6/15/2017

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