Apuntes Lenguaje Java

22. Introducción API

22.1. Presentación API
22.2. Resumen del contenido

22.1. Presentación API

El API de Java está formado por una amplísima jerarquía de clases que cubren una gran cantidad de aspectos relacionados con el desarrollo de software en general. Esta organizado en packages ordenados por temas. El J2SE (Java 2 Standard Edition) permite la utilización de todos estos packages en el desarrollo de programas Java y el JRE (Java Runtime Environment) permite la ejecución de programas que usan cualquiera de las clases del API.La documentación que acompaña al J2SE contiene un manual de referencia completo ordenado por packages y clases de todo el contenido del API. Su consulta resulta imprescindible para cualquier desarrollo.

El API de Java es vastísimo. La versión actual (1.3) contiene 76 packages y aproximadamente 2000 elementos entre clases, interfaces, excepciones, etc. Por tanto el conocimiento en profundidad del API no es tarea trivial, pero a la vez es imprescindible si se quieren abordar desarrollos extensos. La aproximación debe realizarse de forma progresiva, teniendo un conocimiento general de las capacidades globales del API, para ir adquiriendo una mayor especialización en función de las necesidades. Antes de intentar resolver cada problema de programación es conveniente reflexionar que packages del API pueden ayudarnos a resolverlo (si es que no está resuelto completamente).

La nomenclatura de los packages es uniforme y ayuda a categorizar las clases. El primer calificador es java o javax (para las clases dedicadas al interface gráfico). Escapan a esta norma las dedicadas a CORBA y materias afines. El segundo calificador da idea de la materia que cubre el package, como io (entrada/salida), math (funciones matemáticas). Hay temas que contienen varios subpackages, con un tercer calificador más específico (por ejemplo javax.sound.midi, que es bastante autoexplicativo).

El siguiente apartado da un somero repaso a los distintos grupos de packages del API, agrupándolos por temas. 

22.2. Resumen del Contenido

La siguiente tabla muestra una descripción básica del contenido de los distintos packages que constituyen el API de Java.

Package o grupo de packages Descripción
java.applet Proporciona las clases necesarias para crear applets, así como las clases que usa ul applet para comunicarse con su contexto.
java.awt.* 12 packages.El AWT (Abstract Windows Toolkit) proporciona el entorno base para todas las clases de manipulación del interfaz gráfico del usuario. El AWT apareció en la versión 1.0 del JDK y fue parcialmente sustuituido y sustancialmente mejorado en la versión 1.1 (con el conjunto de componentes conocido como swing). Actualmente se mantiene porque es la base del swing aunque muchos de sus elementos ya no se usan.
java.beans.* 2 packages. Contiene las clases relacionadas con el desarrollo de Java Beans. Los Java Beans representan la estrategia de desarrollo por componentes de Java.
java.io Es un package fundamental. Proporciona los mecanismos para las operaciones de entrada/salida de flujos de datos (streams), así como la serialización (capacidad de los objetos para ser transformados en flujos de datos), y soporte para los sistemas de archivos.
java.lang.* 3 packages. Proporciona clases básicas para cualquier programa. (Threads, clases envoltorio, entrada/salida/error estándar, etc.). Asi como clases que proporcionan la caracteristica de 'reflexión', es decir la capacidad de las clases de averigurar como están construidas ellas mismas u otras clases.
java.math Proporciona clases para realiza cálculos aritméticos de cualquier preción. Así como funciones matemáticas generales (Trigonometría, aleatorización, etc.)
java.net Proporciona clases para implantar aplicaciones basadas en red. Sockets, URL's, direcciones IP, etc.
java.rmi.* 5 packages. RMI significa Remote Method Invocation. Proporciona clases que permite que los objetos puedan comunicarse con otros objetos en otros programas Java corriendo en otra máquina virtual conectada por red. Permite el desarrollo de aplicaciones distribuidas.
java.security.* 5 packages. Clases que implantan el esquema de seguridad de Java.
java.sql Proporciona el API para el aceso y proceso de datos organizados en bases de datos relacionales y accediendo con mecanismos de lenguaje SQL. Esta API se denomina también JDBC (Java Data Base Conectivity)
java.text Proporciona clases e interfaces para la manipulación de texto, fechas, números y mensajes de una forma independiente del idioma.
java.util.* 3 packages. Contiene la 'collections framework', o  conjunto de clases para manipulación de conjuntos de objetos (colas, pilas, listas, diccionarios, árboles, tablas hash, etc.). Además tiene varios conjunts de utilidades para manipulación de fecha y hora, generación de números aleatorios y manipulación de ficheros comprimidos en formato ZIP y JAR. El formato JAR (Java ARchive) es una extensión del formato ZIP que permite empaquetar clases java compiladas para su ejecución.
javax.accesibility Contiene un conjunto de clases para las tecnologías de asistencia relacionadas con los interfaces gráficos.
javax.naming.* 5 packages. Contiene clases e interfaces para proporcionar servicios de nombres y directorios.
javax.rmi.* 2 packages. Contiene clases relacionadas con el RMI-IIOP.
javax.sound.* 4 packages. Contiene clases para manipulación de sonidos.
javax.swing.* 16 packages. Conjunto extenso de clases para el configuación del interface gráfico de usuario. Reemplaza parcialmente al AWT. Su característica más importante es que es independiente de la plataforma.
org.omg.* 12 packages. Contiene clases relacionadas con la especificación CORBA. CORBA permite la comunicación entre programas de objetos escritos en diferentes lenguajes (Por ejemplo, Java y C++). Es equivalente a RMI, pero mientras que en este todos los participantes deben ser objetos Java con CORBA se posibilita la comunicación entre objetos multi-lenguaje.

 

Antonio Bel Puchol - antonio@abelp.net