Documente Academic
Documente Profesional
Documente Cultură
ro
Programare Java SE 8
1
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Expresia „Tehnologia Java” o întâlnim foarte des în ziua de astăzi, dar ce înseamnă mai exact?
Tehnologia Java este atât un limbaj de programare, cât și o platformă.
În ziua de astăzi tehnologia face parte din viața noastră de zi cu zi, suntem conectați aproape tot timpul la
aplicații și accesăm conținut oricând, oriunde. Datorită tehnologiei Java, ne așteptăm ca dispozitivele să fie
inteligente, mai funcționale și mult mai distractive.
James Gosling de la Sun Microsystems împreună cu echipa sa (“Green Team”) au început să lucreze la un nou
limbaj destinat produselor electronice comerciale care puteau fi controlate prin procesoare de calculatoare,
orientându-se către microprocesoare care să ruleze pe o multitudine de mașini, în particular pe sisteme
distribuite care lucrează în timp real. Au început să lucreze așadar la prima versiune Java.
În 1994 James a realizat că un astfel de limbaj ar fi ideal pentru site-urile web (browsere web și conexiune Java).
În 1995 Netscape Incorporated lansează ultima versiune a browser-ului Netscape care era capabil să ruleze
programe Java. Mai târziu compania Sun Microsystems vinde licența firmelor IBM, Microsoft, Silicon Graphics,
Adobe și Netscape. În 2010 Sun Microsystems a fost achiziționată de Oracle Corporation, dobândind liniile de
producție hardware și software și implicit și Java.
În ziua de astăzi, Java nu numai că pătrunde Internetul, dar este de asemenea și forța invizibilă din spatele
multor dintre aplicații și dispozitive pe care le folosim zi de zi, de la telefoane mobile până la dispozitive portabile,
jocuri și sisteme de navigație pentru soluții e-business.
Există mai multe versiuni Java lansate de-a lungul anilor. Versiunea curentă stabilă este Java SE 8.
1. JDK Alpha și Beta (1995)
2. JDK 1.0 (23 Ianuarie 1996)
3. JDK 1.1 (19 Februarie 1997)
4. J2SE 1.2 (8 Decembrie 1998)
5. J2SE 1.3 (8 Mai 2000)
6. J2SE 1.4 (6 Februarie 2002)
7. J2SE 5.0 (30 Septembrie 2004)
8. Java SE 6 (11 Decembrie 2006)
9. Java SE 7 (28 Iulie 2011)
10. Java SE 8 (18 Martie 2014)
11. Java SE 9 (Septembrie 2017)
Deși a fost lansată de curând versiunea 9, ea nu face scopul acestui curs.
De ce numele Java? Echipa Sun a vrut ca numele să reflecte esența tehnologiei: revoluționară, dinamică,
vividă, cool, unică, ușor de pronunțat și amuzantă. Java este o insulă din Indonezia unde a fost produsă prima
cafea (denumită și cafea Java).
2
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Aceste caracteristici sunt explicate de James Gosling si Jenry McGilton în lucrarea „The Java Language
Environment”.
În java, codul sursă este scris în format text în fișiere cu extensia .java. Aceste fișiere sunt apoi compilate de
către compilatorul javac în fișiere cu extensia .class. Un fișier .class nu conține cod înțeles de către
procesorul calculatorului nostru, ci conține bytecode, cod mașină înțeles de către mașina virtuală Java (Java
JVM). Aplicațiile sunt rulate cu ajutorul unui utilitar de lansare java împreună cu o instanță a mașinii virtuale Java.
Figura 0.1
Această mașină virtuală este disponibilă pe mai multe sisteme de operare și deci, fișierele .class pot fi rulare pe
sisteme de operare precum Microsoft Windows, Solaris, Linux, sau Mac.
Figura 0.2
Program Java
Utilizând mașina virtuală Java (JVM), aceeași aplicație este capabilă să fie rulată pe mai multe platforme
(sisteme de operare)
Platforma Java
O platformă este un mediu hardware sau software în care un program rulează. Deși am menționat deja sistemele
de operare, majoritatea platformelor pot fi descrise ca o combinație între sistemul de operare și suportul
hardware.
Platforma Java se diferențiază de majoritatea platformelor prin faptul că este o platformă software care rulează
peste platformele hardware.
3
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Un API este o colecție de componente software deja realizate care oferă o serie de capabilități sau
funcționalități. Această colecție este grupată în biblioteci de clase și interfețe legate sau asociate, cunoscute sub
numele de pachete.
Figura 0.3
Ca un mediu independent de platformă, platforma Java poate fi un pic mai lentă decât codul nativ. Cu toate
acestea, progresele în evoluția compilatorului și tehnologiilor de mașini virtuale aduc o performanță apropiată de
cea a codului nativ fără a afecta portabilitatea.
Pentru utilizarea limbajului Java în scopul de a crea și rula programe, următoarele resurse sunt necesare:
Java Runtime Environment (JRE) – reprezintă totalitatea resurselor necesare pentru a rula programe
Java. Printre ele se numără mașina virtuală Java (JVM) și biblioteci de clase Java ce se folosesc pentru
operații des întâlnite (ex. Operații matematice – pachetul Math) – a se vedea in imaginea de mai jos.
Java Development Kit (JDK) – pachetul conține resursele necesare creării de programe Java:
compilator, generator de documentație, arhivator și o alte utilitare care ajută la dezvoltare. După cum se
observă în imaginea preluata din documentatia oficială a platformei de bază - Java Standard Edition 8
JDK este un superset al lui JRE și conține tot ceea ce conține și JRE, plus tool-urile pe care deja le-am
precizat.
Figura 0.4
4
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Un mediu de dezvoltare (IDE – engl. Integrated Development Environment) – Un program Java poate fi
scris în orice editor de text, dar un mediu de dezvoltare oferă multe facilități care sporesc eficiența
programatorului (editor avansat, management al proiectelor și al resurselor atașate acestore, debugging,
plugin-uri pentru alte utilitare – conectare la servere de aplicații, baze de date, etc.). IDE-ul este o
aplicație cu interfața grafică care pune la dispoziție unelte din JDK și numai.
Pașii pentru instalarea pachetului JDK pentru sistemul de operare Windows sunt:
Dacă se păstrează opțiunile default, vom regăsi software-ul instalat în folderul C:\Program
Files\Java\jdk1.8.1_21.
5
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Variabilele de sistem (engl. environment variables) ale sistemului de Operare Windows sunt folosite de către
programele instalate pe acesta.
În cazul platformei Java, posibilele variabile de sistem care pot fi setate sunt următoarele:
- JAVA_HOME – este o variabilă de sistem care indică locația unde este instalat JDK-ul. În mod normal
Java nu folosește această variabilă, ci programe care interacționează cu limbajul Java (engl. third party
programs).
- JRE_HOME – este o variabilă de sistem care indică locația unde este instalat JRE-ul.
- Path – este o variabilă de sistem folosită pentru a localiza executabile, comenzi sau programe .exe,
fișiere .dll (în Windows) și fișiere .so (în Linux).
- CLASSPATH – este o variabilă de sistem care conține o listă de directoare și/sau fișiere JAR în care
Java verifică atunci când încarcă clase. În mod normal această variabilă nu se setează în locația
obișnuită, ca și în cazul de mai sus, ci se utilizează opțiunea -cp sau -classpath în linia de comandă
atunci când folosim comenzile java sau javac.
Aceste variabile pot si setate fie din command prompt, fie din interfața grafică.
Command Prompt, cunoscut sub numele de cmd.exe sau cmd – după numele executabilului, este un interpretor
de linie de comandă al sistemulor de operare Windows NT, Windows CE, OS/2 și eComStation. Acest program
interacționează cu utilizatorul prin interfața liniei de comandă, iar în Windows interfața este implementată prin
consola Win32.
El este folosit pentru a executa comenzile introduse de utilizator. Majoritatea comenzilor sunt folosite pentru a
automatiza taskuri prin scripturi sau fișiere batch cu scopul de a realiza funcții administrative avansate sau de a
depana și rezolva anumite probleme legate de Windows.
Cea mai rapidă metodă de deschidere a unei sesiuni cmd este combinația de taste Ctrl + Shift + click dreapta
în folderul curent de lucru sau dektop si apoi “Open command windows here” sau “Open Power Shell window
here” în Windows 10.
Figura 0.7
Metoda standard de deschidere a unei sesiuni cmd este din Start Menu sau Apps Screen în funcție de
versiunea de Windows, apoi cmd și deschiderea executabilului cmd.exe.
6
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Prima comanda pe care o vom executa este SET (vedeți lista comenzilor posibile în cmd aici).
Pașii pentru setarea variabilelor de sistem JAVA_HOME și Path din interfața grafică sunt următorii:
Pașii instalarea mediului de dezvoltare Eclipse Oxygen, versiunea Java EE developers, sunt:
Figura 0.5
Din lista prezentată la instalare vom selecta Eclipse IDE for Java EE Developers cu toate că cea de-a doua
opțiune ar fi mai potrivită pentru începători, însă recomandarea noastră este să obișnuiți cu această versiune.
7
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Termenul aplicație este sinonim cu program și se referă la codul sursă care este compilat și executat. Pentru a
crea o aplicație Java, programul trebuie conțină o clasă care definește metoda main(), metodă ce reprezintă
punctul de intrare pentru orice aplicație Java.
Această metodă este invocată de interpretorul Java, adică de mașina virtuală Java (JVM) la pornirea aplicației.
În continuare vom crea un program Java folosim un editor text (recomandăm Notepad++ - este ușor de utilizat) și
îl vom rula din Command Prompt.
1. Creăm un folder de lucru, în cazul de față C:\crystalmind\cursuri\curs1.
Folosind Notepad++ sau alt editor de text, în care creăm fișierul Java Exemplu.java.
8
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Notă: Un fișier .java poate conține mai multe clase, dintre care doar una poate avea modificatorul public și aceea
impune numele fișierului.
2. Rulăm Command Prompt (îl găsim în meniul Start sub All Programs/Accessories) și stabilim directorul de
lucru cu comanda cd:
C:\Users\Jeni> cd "c:\crystalmind\cursuri\curs1"
c:\crystalmind\cursuri\curs1> dir
Volume in drive C has no label.
Volume Serial Number is DABF-668E
Directory of c:\crystalmind\cursuri\curs1
4. Pentru a rula Java trebuie să spunem sistemului unde găsesc programele JDK, dar noi am setat deja
variabilele de sistem JAVA_HOME și Path.
Vom verifica în schimb versiunea Java instalată cu comanda java –version:
c:\crystalmind\cursuri\curs1>java –version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
c:\crystalmind\cursuri\curs1>javac -version
javac 1.8.0_121
c:\crystalmind\cursuri\curs1>javac Exemplu.java
Această comandă rulează javac.exe (Windows) sau javac (Unix/Linux). Ar trebui să vedem următorul
system prompt...
c:\crystalmind\cursuri\curs1>
javac a creat fișierul Exemplu.class. Dacă verificăm din nou conținutul directorul, îl vom găsi alaturi de
fișierul .java.
c:\crystalmind\cursuri\curs1> dir
Volume in drive C has no label.
Volume Serial Number is DABF-668E
Directory of c:\crystalmind\cursuri\curs1
9
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
c:\crystalmind\cursuri\curs1>java Exemplu
Hello World!
Observăm că a afișat exact ce am dorit. Pe lângă acest lucru observăm și faptul că mașina virtuală
primește ca parametru un nume de clasă și nu de fișier. Dacă încercăm să rulăm comanda folosind
numele clasei o eroare va fi afișată:
c:\crystalmind\cursuri\curs1>java Exemplu.class
Error: Could not find or load main class Exemplu.class
Eclipse este mai mult decât un mediu de dezvoltare (IDE), el este un întreg ecosistem de dezvoltare. Această
secțiune este o scurtă introducere pentru utilizarea Eclipse (Oxygen este ultima versiune) în lucrul cu limbajul
Java.
Ultima versiune se poate downloada de la adresa https://www.eclipse.org/downloads/. În cadrul acestui curs vom
folosi Eclipse OXYGEN. Opțiunile posibile de lucru sunt:
Eclipse IDE for Java EE Developers – oferă suport pentru dezvoltarea aplicațiilor web. Această versiune
conține:
o Data Tools Platform
o Git integration for Eclipse
o Eclipse Java Development Tools
o Eclipse Java EE Developer Tools
o JavaScript Development Tools
o Maven Integration for Eclipse
o Mylyn Task List
o Eclipse Plug-in Development Environment
o Remote System Explorer
o Code Recommenders Tools for Java Developers
o Eclipse XML Editors and Tools
Eclipse IDE for Java Developers. Acestă versiune conține:
o Git integration for Eclipse
o Eclipse Java Development Tools
o Maven Integration for Eclipse
o Mylyn Task List
o Code Recommenders Tools for Java Developers
o Eclipse XML Editors and Tools
10
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Unitatea primară de organizare în Eclipse este spațiul de lucru (engl. workspace). Un workspace conține toate
proiectele noastre. O perspectivă este o modalitate de a privi fiecare proiect, iar în cadrul unei perpective există
mai multe view-uri.
În figura de mai jos este afișată perspectiva Java, perspectivă care este default și pe care o vedem când pornim
Eclipse-ul.
Figura 0.8
O perspectivă Java conține toate instrumentele de care avem nevoie pentru a începe scriem aplicații Java.
Fiecare fereastră tabulară prezentată în figura 0.8 este o vizualizare pentru perspectiva Java. Package Explorer
și Outline sunt două vizualizări destul de utile.
Mediul Eclipse este configurabil. Fiecare vizualizare este dockable astfel încât să o puteți muta în perspectiva
Java și să o plasați acolo unde doriți.
11
© 2017 – Crystal Mind Academy – www.crystalmind.ro
Programare Java SE 8
Bibliografie
12