Este capítulo pretende ser una rápida introducción a la programación en Java. En primer lugar muestra lo que es Java, sus características y las herramientas que están ligadas a él y, a continuación, enseña cómo compilar y ejecutar algunos programas sencillos escritos en Java. La tecnología Java es tanto una plataforma como un lenguaje de programación. En los capítulos posteriores se trata de dar una visión más detallada de la sintaxis del lenguaje de programación Java.
El lenguaje de programación Java, fue diseñado por la compañía Sun Microsystems Inc, con el propósito de crear un lenguaje que pudiera funcionar en sistemas de ordenadores heterogéneos (redes de computadoras formadas por más de un tipo de ordenador, ya sean PC compatibles, Macintosh o estaciones de trabajo que empleen diferentes sistemas operativos como Windows, OS/2 o Unix), y que fuera independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un programa de Java puede ejecutarse en cualquier máquina o plataforma.
Su origen se remonta a la creación de un lenguaje de programación para el desarrollo de aplicaciones para electrodomésticos y otros aparatos electrónicos de consumo por parte de una empresa filial de Sun, llamada FirstPerson en 1991. Su creador, James Gosling, lo bautizó como Oak. Al abandonarse este proyecto, el lenguaje se modificó, al igual que su nombre y se orientó al desarrollo de aplicaciones para la red. En septiembre de 1995 aparece el primer Kit de Desarrollo de Java (JDK). A principios de 1997 se presenta la primera revisión de Java (la versión 1.1) y a finales de 1998 surge la versión 1.2 (Java 2) que introdujo modificaciones bastante significativos. En octubre de 2004 se hace pública la versión Java 1.5 (Java 5) incluyendo innovaciones muy importantes en la plataforma.
Según la propia Sun Microsystems, el lenguaje Java muestra las siguientes características generales:
En este aspecto la principal originalidad de Java estriba en que es a la vez compilado e interpretado. Con el compilador de Java, el programa fuente con extensión .java
es traducido a un lenguaje intermedio o pseudo-código (no es código máquina) llamado Java bytecodes generándose un programa compilado almacenado en un archivo con extensión .class
. Este archivo puede ser posteriormente interpretado y ejecutado por el intérprete de Java (lo que se conoce como la Máquina Virtual Java o Java Virtual Machine). Por eso Java es multi-plataforma, ya que existe un intérprete para cada máquina diferente. Por tanto, la compilación se produce una vez y la interpretación cada vez que el programa se ejecuta. Este proceso se esquematiza en la siguiente figura.
Actualmente las máquinas virtuales modernas realizan una compilación JIT (Just In Time) en donde el bytecode no es interpretado sino que se compila directamente a código máquina en tiempo de ejecución de acuerdo con la arquitectura (procesador y sistema operativo) en la que se ejecuta la máquina virtual. Esto permite conseguir velocidades de ejecución similares al C. En la práctica las máquinas virtuales suelen utilizar técnicas mixtas de interpretación/compilación JIT normalmente según la frecuencia de paso por un bytecode concreto.
Pueden destacarse las siguientes ventajas en el empleo de Java como lenguaje de programación:
El uso de Java también tiene algunos inconvenientes o limitaciones:
Normalmente, una plataforma es un sistema mixto que incluye el hardware y/o el entorno software en el que se ejecuta un programa. La plataforma Java se diferencia de la mayoría de las demás en que está formada únicamente por software que se ejecuta en cualquier otra plataforma independiente de hardware. La plataforma Java tiene dos componentes:
El API de Java es una amplia colección de componentes de software que facilitan muchas necesidades de programación como puede ser código necesario para construir una interfaz de usuario (GUI). El API de Java se agrupa en librerías o paquetes (packages) de componentes relacionados entre sí: componentes básicos de programación, creación de applets, redes, internacionalización, seguridad, componentes de software, conectividad y redes, etcétera. Hay, además, extensiones estándar fuera del núcleo del API de Java que facilitan recursos para servidores, gráficos 3D, animación...
La siguiente figura esquematiza la relación entre la aplicación o applet de Java, la Máquina Virtual, el API y el hardware correspondiente.
Para poder escribir un programa con Java es necesario tener instalado el Kit de Desarrollo de Java o JDK (Java Development Kit), también llamado Java SDK (Software Development Kit). El Kit de Desarrollo de Java contiene el software necesario para que los programadores compilen, depuren y ejecuten programas y applets escritos en Java. Tanto el software como la documentación son gratuitos según el acuerdo de la licencia de GNU.
Una vez almacenado el archivo de instalación en un directorio local, se ejecuta para comenzar el proceso de instalación del SDK. La instalación se lleva a cabo con la asistencia de una secuencia de ventanas de diálogo que van presentando las distintas etapas de la instalación. En la ventana de confirmación del inicio de la instalación se pide la confirmación correspondiente al usuario, y posteriormente, el programa de instalación del SDK va pidiendo al usuario la confirmación para realizar las distintas etapas de la instalación