Professional Documents
Culture Documents
C API T U LO
5.1.1 Caracteristicas
El lenguaje de Java tiene caracteristicas que lo han hecho un lenguaje esencial
para la programacion de sistemas de computo, que consta de los siguientes
puntos:
Simple. Otro aspecto es su similitud con C y C++, en relacion con las ex-
presiones basicas del lenguaje. Esto ha permitido a los programadores apren-
der Java de manera mas rapida, a diferencia de lenguajes como Smalltalk que
requieren un cambio en la manera de pensar de los programadores ya
acostumbrados a C y C++. Sin embargo, Java se considera maspwro que C++,
ya que no contiene mas que clases, lo que simplifica el programa y al pro-pio
compilador. Java disminuye la complejidad de C++, como es la aritmeti-
ca de apuntadores, que a su vez agrega complejidad a la administracion de
memoria. Se elimina la complejidad adicional de tipos como estructuras y el
uso de asociaciones de tipo, a traves de typedefs, junto con el preprocesa-dor
de C++ con palabras reservadas como #define, ^include y #ifdef. Otro aspecto
que se elimina es la sobreescritura de operadores. Tambien se eli-minan
aspectos de manejo complicado como la herencia multiple.
Robusto. En contraste con C++ y, en especial, con C, Java esta fuertemen-te
tipificado, lo que ayuda a encontrar con mayor facilidad los errores de
programacion durante la etapa de compilacion. Java tambien incluye mane-jo
de excepciones y recoleccion de basura, con objeto de lograr programas mas
robustos.
Seguro. Debido a la eliminacion de los apuntadores de C y C++, Java logra un
modelo de manejo de memoria mucho mas seguro, que ademas se apoya en el
modelo de verificacion de codigo en tiempo de ejecucion, como ve-remos mas
adelante en la descripcion del modelo completo de Java.
Eftciencia. En la actualidad, Java esta considerado como un lenguaje efi-
ciente. Aunque nunca llegue a la eficiencia de C, en este aspecto se le compara
con C++. Esta eficiencia se basa en que cuenta con un compila-dor para
generar el codigo en contraste con aquellos lenguajes completa-mente
interpretados, donde el rendimiento es menor. Ahora Java cuenta con un
compilador incremental (Just-in-Time Compiler, JIT), que ayuda a lograr estos
objetivos.
130 130 CAP. 5 PROGRAMACION
ORIENTADA A OBJETOS CON JAVA
Bibliotecas. Otro aspecto que ha hecho de Java un lenguaje muy aceptado es la
riqueza de sus bibliotecas o paquetes (package). Esto esta en contras-te radical
con C y C++, donde las bibliotecas realmente no existen. En cam-bio Java
contiene un gran numero de bibliotecas que facilitan la creacion de programas,
ademas de asegurar una estandarizacion entre aplicaciones. Exis-ten
bibliotecas para el manejo de estructuras de datos avanzadas, manejo de
multimedia, manejo de redes como TCP/IP, procedimientos remotos y con-
currencia mediante multiples hilos deprocesamiento (multiple threads), estos
ultimos tambien conocidos como procesos finos o Hvianos. En la actualidad,
aprender el lenguaje de Java como tal es solo 10% del esfuerzo, 90% restan-te
se enfoca a aprender a utilizar sus bibliotecas. Obviamente se estudian solo
aquellas que se desea conocer. Por ejemplo, una biblioteca importante es la del
sistema de ventanas que puede correr bajo cualquier plataforma. Existe el
Abstract Window Toolkit (AWT) desde la primera version de Java, y se cuenta
en la actualidad con las bibliotecas Java Foundation Classes (JFC), tambien
conocidas como SWING. Ademas de estas existen bibliotecas de ma-nejo de
graflcas en dos y tres dimensiones. Incluso existen versiones para correr en
plataformas moviles, como asistentes personales.
Tecnologia. Existe un gran numero de productos y tecnologia desarrolla-dos
alrededor de Java. Aparte de este lenguaje se cuenta con productos tales como
Enterprise JavaBeans (EJB), Java Server Pages (JSP), Java Servlets y Java
Data Base Connectors (JDBC). Ademas, existen productos relaciona-dos con
estandares tales como Common Object Request Brower Architec-ture
(CORBA) y extended Markup Language (XML). En la actualidad hay tres
ediciones principales Java: Java2 Enterprise Edition (J2EE), Java2 Stan-dard
Edition (J2SE) y Java2 Micro Edition (J2ME).
5.1.2 Procesamiento
La figura 5.1 ilustra el procesamiento de un programa escrito en Java. Del lado
izquierdo se muestran los pasos para la compilacion de un programa en Java,
mientras que del derecho estan los pasos para su ejecucion.
INTRO
DUCCI
ON A
m
COMPILACION
Por ejemplo, si se tiene una clase llamada "ej", el nombre del archivo debe ser
"ej.java". El archivo se compilaria mediante algun ambiente de desarrollo o utilizando
el comando j avac que viene incluido en los kit de desarrollo de Java como Java
Development Kit (JDK) o Standard Development Kit (SDK). Por ejem-plo, para
compilar el archivo anterior se ejecutaria
javac ej.Java
EJECUCION
Durante la ejecucion se obtiene el bytecode, guardado en los archives ".class", que
puede estar ya en la plataforma actual o haber sido enviado por la red, como en el caso
de un browser. El bytecode se carga en la maquina virtual por el cargador de clases. A
continuacion este codigo es procesado por el verifica-dor de bytecode y, dependiendo
del hardware con que se cuenta, puede ser in-terpretado y ejecutado por el procesador
virtual de la maquina o traducido al codigo de un procesador de Java mediante el
generador de codigo.
Java ej2
Ya que pueden haber multiples archives .class, solo el principal es el que se incluye en
la linea anterior. Otra forma adicional de ejecutar el applet es me-diante el comando
appletviewer, de la siguiente forma:
appletviewer ej.html
5.1.3 Bibliotecas
Java lleva a un nuevo nivel el concepto de bibliotecas o paquetes, estos pro-veen una
amplia funcionalidad para crear nuevas aplicaciones de Java.Ademas de servir como
bibliotecas, definen una Application ProgramInterface (API)[in-terface de aplicacion
de programa], que permite al desarrollador extender las clases de estos paquetes para
adaptarlos a las necesidades basicas de un pro-grama. Java organiza estos paquetes en
componentes jerarquicos a partir de dos directorios principales. El primero es Java,
que es parte esencial de lo que ac-tualmente se conoce como el API 1 de Java. Los
paquetes de este API se mues-tran en la tabla 5.1.
o lenguaje.
Java. text
java.util
En la actualidad se cuenta con el API 2 de Java, mejor conocido como Java2, el cual
incluye ademas del paquete Java, el paquete javax, donde se encuen-tran componentes
mas avanzados, como se muestra en la tabla 5.2.
En Java, cada clase debe ser parte de un paquete (package), y puede ser refe-rida por
su nombre completo "calificado", el cual consiste en la jerarquia del paquete y el
nombre de la clase, todos separados por puntos. Los propios nom-bres de los paquetes
generalmente estan compuestos de multiples componen-
INTRODUCCION A JAVA
W
Tabla 5.2 Paquetes extendidos de Java.
g javax. rmi javax.
Paquete
sen/let javax. sql
j avax .
accessi javax. swing
bi 1 i ty
javax. transaction
javax.
activation
javax.ejb
j
a
v
a
x
.
j
m
s
j
a
v
a
x
.
m
a
i
l
j
a
v
a
x
.
n
a
m
i
n
Contenid n de los componentes de
o JavaBeans.
Clases Clases para el manejo de
que Enterprise Java Beans (EJB).
definen Clases para el manejo de Java
contratos Message Server (JMS).
entre
Clases para el manejo de
compone correo.
ntes de
interface Clases para el acceso de los
servicios de nombres.
s de
usuario y Clases para la invocacion de
una metodos remotos incluyendo
tecnologi CORBA.
a Clases para el manejo de
asistente servlets y Java Server Pages
que (JSP).
provee Clases para el acceso a base
acceso a de datos conSQL.
esos Clases que proveen un
compone conjunto de componentes para
ntes.
GUI que trabajan en cualquier
Clases plataforma.
que
definen Clases para el manejo de
activacio transacciones entre
componentes.