Tehnologia Java reprezinta pe de-o parte un limbaj de programare, pe de alta parte o platforma.
Limbajul de programare Java este un limbaj de nivel înalt care este asa cum am aratat caracterizat de urmatoarele: simplitate, orientat pe obiecte, distribuit, interpretat, robust, sigur, neutru din punct de vedere al arhitecturii, portabil, performanta ridicata, fire multiple de executie, dinamic. Spre deosebire de alte limbaje de programare, în care avem de compilat sau de interpretat un program pentru a putea fi executat într-un calculator, limbajul Java este mai deosebit prin faptul ca un program este compilat si interpretat. Cu compilatorul se translateaza mai întâ 424g62e i programul într-un limbaj intermediar denumit Java-bytecode, care este un cod independent de platforma si este interpretat de interpretorul platformei Java. Acest interpretor analizeaza si ruleaza fiecare instructiune Java-bytecode pe calculator. Compilarea se face o singura data, iar interpretarea intervine ori de câte ori este nevoie sa se execute programul. Figura 1.1. ilustreaza tot acest proces de creare a unei aplicatii Java.
Figura 1.1. Etapele necesare în crearea si executia unei aplicatii Java
Java-bytecode se poate interpreta ca fiind instructiuni în limbaj masina pentru procesorul denumit Masina Virtuala Java (Java Virtual Machine - Java VM, JVM). Orice interpretor Java, chiar daca este un mediu de dezvoltare sau este un browser Web capabil sa ruleze applet-uri, este o implementare a JVM.
Java-bytecode ajuta ca sintagma "scrie o singura data, ruleaza oriunde" (write once, run anywhere) sa fie posibila compilarea unui program în Java-bytecode pe orice platforma care are un compilator Java instalat. Acest cod binar rezultat poate fi executat pe orice implementare a Java VM. Acest lucru înseamna ca atât timp cât un calculator are instalat Java VM, acelasi program poate fi rulat pe o statie cu Windows 2000, o statie Solaris, sau pe un Mac (Figura 1.2.).
Figura 1.2. Java VM pe diverse platforme
O platforma este un mediu hardware sau software în care se executa un program. Cele mai populare platforme, de exemplu Windows 2000, Linux, Solaris, MacOS, pot fi descrise ca fiind o combinatie dintr-un sistem de operare si un sistem hardware adecvat. Platforma Java difera de celelalte platforme prin faptul ca este o platforma exclusiv software care ruleaza deasupra altor platforme bazate pe hardware.
Platforma Java este compusa din doua componente:
-Masina virtuala Java (Java VirtualMachine - Java VM)
-Interfata de programare a aplicatiilor Java (Java Application Programming Interface - Java API)
Masina virtuala Java, introdusa în sub-capitolul precedent, este baza platformei Java si a fost portata pe diverse platforme bazate pe hardware.
Java API este o colectie de componente software care furnizeaza multe posibilitati utile, cum ar fi utilitare pentru interfata grafica cu utilizatorul. Java API este grupata în biblioteci de clase si interfete, aceste biblioteci purtând numele de pachete (packages).
Figura urmatoare (Figura 1.3.) descrie un program care ruleaza pe platforma Java. Dupa cum se vede Java API si Java VM izoleaza programul de partea hardware a sistemului.
Figura 1.3. Platforma Java si dezvoltarea unei aplicatii
Codul nativ este codul care dupa compilare, (codul compilat) ruleaza pe o platforma hardware specifica. Deoarece este un mediu independent de platforma, platforma Java este mai lenta decât codul nativ, totusi, compilatoarele mai inteligente, interpretoarele bine configurate, si compilatoarele de bytecode pot sa fie suficient de rapide, aproape ca si codul nativ fara sa afectam portabilitatea programului.
Cele mai întâlnite tipuri de aplicatii scrise în limbajul de programare Java sunt applet-urile si aplicatiilede sine statatoare (stand alone).
Un applet este un program care se supune unor conventii si ruleaza într-un browser Web care suporta Java.
O aplicatie de sine statatoare este un program independent care ruleaza direct pe platforma Java.
In Java se poate realiza si un applet-aplicatie, appletcation care functie de context poate fi tratat ca si:
-applet de catre un browser sau appletviewer
-aplicatie grafica de catre interpretorul Java.
Un alt tip de aplicatii Java sunt servlet-urile. Un servlet se aseamana cu un applet, prin faptul ca ruleaza în interiorul unei alte aplicatii care suporta mediul Java, si respecta regulile impuse de aceasta. În cazul servlet-ului aplicatia este un server de Web. Servlet-urile Java sunt folosite pentru construirea de aplicatii Web interactive, fiind un înlocuitor al script-urilor CGI.
Toate aceste tipuri de aplicatii Java sunt suportate de catre Java API prin intermediul pachetelor de componente software care ofera o gama larga de functionalitati. Cele mai importante trasaturi oferite de acestea se refera la trasaturi:
-de baza, obiecte, siruri, fire de executie, lucrul cu numere, operatii input/output, structuri de date, informatii sistem, data si timpul, etc.
-applet-uri, setul de conventii folosite de applet-uri.
-retea, lucrul cu URL-uri, lucrul cu protocoalele TCP (Transmission Control Protocol), UDP (User Datagram Protocol), si IP (Internet Protocol).
-internationalizare, ajuta la scrierea de programe care pot fi localizate oriunde pe glob. Astfel programele se pot adapta automat la setarile locale si continutul va fi afisat în limba locala.
-securitate, de nivel mic sau mare, care cuprinde semnatura electronica, gestiune de chei publice si private, controlul accesului, si certificarea.
-componente software, sunt cunoscute sub denumirea de JavaBeans, sunt componente software reutilizabile care se pot integra într-o arhitectura de componente existenta.
-serializare de obiecte, permite persistenta obiectelor si comunicatia folosind tehnologia RMI (Remote Method Invocation).
-acces la baze de date, JDBC (Java Database Connectivity) asigura accesul la o gama foarte larga de baze de date relationale.
Platforma Java mai cuprinde si API-uri pentru grafica 2D si 3D, accesibilitate, servere, colaborare, telefonie, tehnica vorbirii, animatie, si multe altele. Figura urmatoare (Figura 1.4.) arata modul de alcatuire a platformei Java 2 SDK (Software Development Kit) Standard Edition.
Figura 1.4. Java 2 SDK, Standard Edition, versiunea 1.3.
Mediul de executie Java 2 (JRE - Java Runtime Environment) este compus din masina virtuala Java, clasele nucleu, si alte fisiere. Java 2 SDK include JRE si instrumentele de dezvoltare cum ar fi compilatoarele si debuggerele.
Este important ca înainte sa trecem la realizarea unei aplicatii Java sa discutam despre uneltele si bibliotecile de care dispunem.
La baza dezvoltarii unui program Java sta mediul de dezvoltare pus la dispozitie de firma Sun. Acesta este Java Developer Kit (JDK) si trebuie considerat ca mediu de referinta în programarea Java. Acest kit a evoluat, începând ce versiunea JDK 1.0 si apoi JDK 1.1, JDK 1.2, pâna la versiunea JDK 1.3, actualmente aparând versiunea beta pentru 1.4.
Se considera important ca un programator Java sa cunoasca mai întâi uneltele standard si apoi sa treaca la utilizarea uneltelor mai performante.
Mediul JDK contine pe de-o parte o serie de biblioteci de clase Java necesare scrierii unui program si pe de alta parte un set de utilitare necesare compilarii, testarii, executiei si documentarii unei aplicatii Java.
Un fisier cu extensia *.class, reprezinta unitatea fundamentala a unui program executabil Java. O biblioteca de clase cuprinde o serie de clase ce au un numitor comun. O astfel de biblioteca este cunoscuta în Java sub numele de package. JDK-ul include câteva package-uri fundamentale, care contin clase fara de care nu se pot dezvolta aplicatii Java performante. Package-urile Java incluse în JDK, formeaza principalul API- Application Programming Interface numit si Java Core. Orice alt mediu care poate executa aplicatii Java diferit de mediul JDK trebuie sa includa acest API. Pe lânga aceste pachete fundamentale grupate în Java Core utilizatorul poate folosi si altele dezvoltate de catre utilizatori. Trebuie însa sa se asigure ca aceste pachete aditionale, sunt disponibile si pe platforma pe care aplicatia se executa, nu numai unde aceasta a fost creata.
JDK 1.3. contine urmatoarele package-uri de baza:
package java.applet
Contine clase necesare dezvoltarii unui applet, a unui program Java care se executa în cadrul unui browser WWW sau este rulat cu appletviewer-ul.
package java.awt, java.awt.datatransfer, java.awt.event, java.awt.image
Sunt utilizate pentru dezvoltarea de interfete grafice standard.
package java.beans
Acesta include clasele necesare lucrului cu stream-uri (comunicare cu device-uri Input/Output, comunicare cu consola, accesul la fisiere, etc.).
package java.lang
Contine clasele fundamentale fara de care nici un program Java nu poate exista. Utilizarea unei clase din oricare alt pachet decât java.lang într-un program Java, se specifica în clar prin directiva import nume_pachet. . Acest pachet este inclus automat de catre compilator fara a fi nevoie de precizari suplimentare.
package java.lang.reflect
Este utilizat pentru a putea face o verificare a entitatilor Java, a claselor/obiectelor Java. Aceasta verificare este foarte utila în cazul dezvoltarii de aplicatii flexibile si dinamice.
package java.math
Se foloseste pentru utilizarea de functii matematice standard implementate.
package java.net
Este utilizat pentru programarea în retea si contine o sumedenie de clase pentru aceasta.
package java.rmi, java.rmi.dgc, java.rmi.registry, java.rmi.server
Aceste pachete sunt utilizate pentru crearea unor aplicatii Java ce lucreaza în sisteme distribuite ( RMI - Remote Method Invocation ). Faciliteaza apelul unor metode din obiecte disponibile pe fiecare din calculatoarele conectate în retea.
package java.security, java.security.acl, java.security.interfaces
Sunt pachete ce privesc asigurarea unui mecanism de securitate al sistemului software dezvoltat.
package java.sql
Este utilizat pentru lucrul cu bazele de date.
package java.text
Este utilizat pentru lucrul cu texte.
package java.util
Ofera suport pentru lucrul cu liste, vectori, dictionare, informatii legate de data si timp, etc.
package java.util.zip, java.util.jar
Sunt pachete necesare atuci când se lucreaza cu algoritmi de compresie si decompresie.
package java.awt.color
Furnizeaza clase pentru lucrul cu culori.
package java.awt.font
Clase pentru lucrul cu fonturi.
package java.awt.geom
Frunizeaza clase 2D pentru lucrul cu geometrie bidimensionala.
package java.awt.im
Clase si interfate pentru metode de intrare.
package javax.naming, javax.naming.directory, javax.naming.event, javax.naming.ldap, javax.naming.spi
Furnizeaza o interfata pentru dezvoltarea metodelor de intrare care pot fi utilizate cu orice JRE.
package javax.sound.midi
Furnizeaza interfete si clase pentru secvente audio de intrare/iesire.
package javax.sound.sampled
Furnizeaza interfete si clase pentru captarea, prelucrarea si rularea fisierelor audio.
package javax.swing
Furnizeaza un set de componente grafice pentru toate limbajele Java, care lucreaza la fel pe orice platforma.
package org.omg.CORBA
Furnizeaza maparea API-ului OMG CORBA în limbajul de programare Java , incluzând clasa ORB care este implementata pentru ca un programator sa o poata utiliza complet ca si un Object Request Broker (ORB).
Pe lânga API-ul Java Core pachetul JDK pune la dispozitia programatorului o serie de unelte necesare dezvoltarii, testarii, analizei si documentarii programelor.
Principalele unelte utilizate în Java sunt:
javac - Java Language Compiler
Este compilatorul Java care transforma sursele text având extensia *.java scrise în limbaj de programare Java, în cod executabil pe masina virtuala Java (JVM), în bytecode, adica fisiere de tip class.
Exemplu
javac nume_fisier.java
java - Java Interpreter
Interpretorul Java executa programele Java, realizând nivelul de JVM deasupra platformei reale. Prin lansarea în executie a acestui utilitar se porneste de fapt JVM. Programul emuleaza JVM convertind instructiunile JVM din bytecode în instructiuni ale masinii reale.
Observatie: Aceasta unealta este utila doar pentru aplicatiile stand- alone sau appletcation.
javadoc
Acest program genereaza documentatia programelor Java în format html. Documentarea se face pa baza comentariilor specifice Java din program si acest program se aplica doar asupra fisierelor sursa Java.
Exemplu:
javadoc nume_fisier.java
Orice masina virtuala Java (fie interpretor fie browser) se presupune ca are acces la fisierele bytecod existente în mediul JDK. Aceasta în cazul în care se formeaza versiuni. Variabila de mediu CLASSPATH este cea care defineste caile de acces la biblioteci.
|