Apuntes Lenguaje Java

1. Introducción

1.1. Objetivos de diseño de Java
1.2. Características de Java
1.3. Qué incluye el J2SE (Java 2 Standard Edition)
1.4. Qué es el JRE (Java Runtime Environment)
1.5. Qué se necesita para empezar

Java se creó como parte de un proyecto de investigación para el desarrollo de software avanzado para una amplia variedad de dispositivos de red y sistemas embebidos. La meta era diseñar una plataforma operativa sencilla, fiable, portable, distribuida y de tiempo real. Cuando se inició el proyecto, C++ era el lenguaje del momento. Pero a lo largo del tiempo, las dificultades encontradas con C++ crecieron hasta el punto en que se pensó que los problemas podrían resolverse mejor creando una plataforma de lenguaje completamente nueva. Se extrajeron decisiones de diseño y arquitectura de una amplia variedad de lenguajes como Eiffel, SmallTalk, Objetive C y Cedar/Mesa. El resultado es un lenguaje que se ha mostrado ideal para desarrollar aplicaciones de usuario final seguras, distribuidas y basadas en red en un amplio rango de entornos desde los dispositivos de red embebidos hasta los sistemas de sobremesa e Internet.

1.1. Objetivos de diseño de Java

Java fue diseñado para ser:

- Sencillo, orientado a objetos y familiar: Sencillo, para que no requiera grandes esfuerzos de entrenamiento para los desarrolladores. Orientado a objetos, porque la tecnología de objetos se considera madura y es el enfoque más adecuado para
las necesidades de los sistemas distribuidos y/o cliente/servidor. Familiar, porque aunque se rechazó C++, se mantuvo Java lo más parecido posible a C++, eliminando sus complejidades innecesarias, para facilitar la migración al nuevo lenguaje. 

- Robusto y seguro: Robusto, simplificando la gestión de memoria y eliminando las complejidades de la gestión explicita de punteros y aritmética de punteros del C. Seguro para que pueda operar en un entorno de red.

- Independiente de la arquitertura y portable: Java está diseñado para soportar aplicaciones que serán instaladas en un entorno de red heterogéneo, con hardware y sistemas operativos diversos. Para hacer esto posible el compilador Java genera 'bytecodes', un formato de código independiente de la plataforma diseñado para transportar código eficientemente a través de múltiples plataformas de hardware y software. Es además portable en el sentido de que es rigurosamente el mismo lenguaje en todas las plataformas. El 'bytecode' es traducido a código máquina y ejecutado por la Java Virtual Machine, que es la implementación Java para cada plataforma hardware-software concreta. 

- Alto rendimiento: A pesar de ser interpretado, Java tiene en cuenta el rendimiento, y particularmente en las últimas versiones dispone de diversas herramientas para su optimización. Cuando se necesitan capacidades de proceso intensivas, pueden usarse llamadas a código nativo.

- Interpretado, multi-hilo y dinámico: El intérprete Java puede ejecutar bytecodes en cualquier máquina que disponga de una Máquina Virtual Java (JVM). Además Java incorpora capacidades avanzadas de ejecución multi-hilo (ejecución simultánea de más de un flujo de programa) y proporciona mecanismos de carga dinámica de clases en tiempo de ejecución.
 

1.2. Características de Java

bulletLenguaje de propósito general.
bulletLenguaje Orientado a Objetos.
bulletSintaxis inspirada en la de C/C++.
bulletLenguaje multiplataforma: Los programas Java se ejecutan sin variación (sin recompilar) en cualquier plataforma soportada (Windows, UNIX, Mac...)
bulletLenguaje interpretado: El intérprete a código máquina (dependiente de la plataforma) se llama Java Virtual Machine (JVM). El compilador produce un código intermedio independiente del sistema denominado bytecode.
bulletLenguaje gratuito: Creado por SUN Microsystems, que distribuye gratuitamente el producto base, denominado JDK (Java Development Toolkit) o actualmente J2SE (Java 2 Standard Edition).
bulletAPI distribuida con el J2SE muy amplia. Código fuente de la API disponible.

1.3. Qué incluye el J2SE (Java 2 Standard Edition)

bulletHerramientas para generar programas Java. Compilador, depurador, herramienta para documentación, etc.
bulletLa JVM, necesaria para ejecutar programas Java.
bulletLa API de Java (jerarquía de clases).
bulletCódigo fuente de la API (Opcional).
bulletDocumentación.

La versión actual (Enero 2001) es la 1.3.0. 

1.4. Qué es el JRE (Java Runtime Environment)

JRE es el entorno mínimo para ejecutar programas Java 2. Incluye la JVM y la API. Está incluida en el J2SE aunque puede descargarse e instalarse separadamente. En aquellos sistemas donde se vayan a ejecutar programas Java, pero no compilarlos, el JRE es suficiente. 

El JRE incluye el Java Plug-in, que es el 'añadido' que necesitan lo navegadores (Explorer o Netscape) para poder ejecutar programas Java 2. Es decir que instalando el JRE se tiene soporte completo Java 2, tanto para aplicaciones normales (denominadas 'standalone') como para Applets (programas Java que se ejecutan en una página Web, cuando esta es accedida desde un navegador).

1.5. Qué se necesita para empezar

El entorno mínimo necesario para escribir, compilar y ejecutar programas Java es el siguiente:

bulletJ2SE (Java 2 Standard Edition) y la documentación (Se descargan por separado). Esto incluye el compilador Java, la JVM, el entorno de tiempo de ejecución y varias herramientas de ayuda. La documentación contiene la referencia completa de la API. Puedes descargar esto en http://java.sun.com/j2se 
bulletUn editor de textos. Cualquiera sirve. Pero un editor especializado con ayudas específicas para Java (como el marcado de la sintaxis, indentación, paréntesis, etc.) hace más cómodo el desarrollo. Por ejemplo Jext (Java Text Editor) es un magnifico editor. Es gratuito y además está escrito en Java. Puedes descargarlo en http://sourceforge.net/projects/jext/ 
bulletDe forma opcional puede usarse un Entorno de Desarrollo Integrado para Java (IDE). Una herramienta de este tipo resulta aconsejable como ayuda para desarrollar aplicaciones o componentes. Sin embargo, en las primeras etapas del aprendizaje de Java no resulta necesario (ni siquiera conveniente, en mi opinión). Un IDE excelente, gratuito y perfectamente adaptado a todas las características de Java es Netbeans (versión open-source del Forte for Java de Sun). Puedes descargarlo en http://www.netbeans.org 

Antonio Bel Puchol - antonio@abelp.net