Plataforma Java
La plataforma Java és un grup de programes, relacionats entre ells ( plataforma), de Sun Microsystems que permet el desenvolupament i l'execució de programes escrits en el Llenguatge Java. Aquesta plataforma no és específica de cap processador ni sistema operatiu, més aviat, ho és d'un motor d'execució (anomenat una màquina virtual) o un compilador, amb un conjunt de llibreries estàndards que disposen d'implementacions per diversos maquinaris i sistemes operatius, que tenen l'objectiu que l'execució sigui idèntica sobre qualsevol d'ells .
Hi ha diverses edicions de la plataforma, entre elles:
- Java Standard Edition o Java SE (antigament J2SE) per ordinadors de sobretaula
- La Java Enterprise Edition o Java EE (antigament J2EE) per servidors web
- La Java Micro Edition o Java ME (antigament J2ME) per dispositius mòbils, com ara telèfons intel·ligents.
Des de desembre de 2006 la versió disponible de la Plataforma Java és la 1.6.0 (tal com anomenem la versió per desenvolupadors), o 6 (dita així quan ens referim a la versió en producció). Ambdues són la mateixa versió.
Cadascun dels diversos programes que conformen la Plataforma Java proveeix una part determinada de les seves funcionalitats principals. Per exemple, per un costat hi ha el compilador Java que converteix el codi font Java en bytecode Java (un llenguatge intermig entre les fonts del programador i el codi màquina executable). El compilador forma part del Java Development Kit. Per un altre costat hi ha l'Java Runtime Environment (JRE) que generalment ofereix una implementació de la màquina virtual amb un JIT el bytecode a codi nadiu (executable) de la màquina.
Existeix un ampli ventall de llibreries ja precompilades a bytecode de java. També hi ha diverses maneres d'implantar-les, com un applet d'una pàgina web, o un component J2EE. Hi ha bastants més components, alguns dels quals trobarem en edicions específiques de la plataforma, com podem observar al diagrama de la dreta.
Els components essencials de la plataforma són: el compilador de Java, les llibreries i l'entorn d'execució.
La Màquina Virtual de Java
El cor de la Plataforma Java és el propi concepte de "màquina virtual", que executa programes en bytecode de Java. El bytecode d'un programa és el mateix, independentment del sistema operatiu o maquinari sobre els que ha de córrer. El compilador JIT tradueix el bytecode en instruccions de codi nadiu del processador i el guarda a la memòria de codi de la màquina durant l'execució. Aquesta traducció és directa, ja que el bytecode és proper al codi màquina, de manera que la part farragosa de traducció està resolta des del moment de la compilació. Inicialment Sun proveïa un intérpret de bytecode, però això feia que les aplicacions fossin lentes. Des de la versió 1.2 del JRE, proveeix el JIT, que després d'un decalatge de temps, que entendríem com un calentament, ofereix una execució que tendeix a ser tan ràpid com el codi executable. Tanmateix, aquesta forma de funcionar depèn de cada implementació del JRE.
Llibreries de classe
La majoria de sistemes operatius ofereixen una gran quantitat de codi reusable ja implementat, per simplificar la feina del programador. Aquest codi acostuma a ser posat a disposició com un conjunt