Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Un análisis a Java, Apuntes de Ingeniería Infórmatica

Asignatura: Lenguajes de programación, Profesor: David Atauri, Carrera: Ingeniería Informática, Universidad: UEM

Tipo: Apuntes

Antes del 2010

Subido el 13/01/2010

kween-2
kween-2 🇪🇸

4.4

(5)

2 documentos

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
2008/2009
Alberto López Rubal
Manuel Quintana Eguren
UN ANÁLISIS A JAVA
Índice
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Un análisis a Java y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Alberto López Rubal

Manuel Quintana Eguren

UN ANÁLISIS A JAVA

Índice

UN ANÁLISIS A JAVA |

2008/

1. Introducción

A lo largo de este trabajo se hablara todo lo relacionado con el lenguaje Java, un lenguaje orientado a objetos que ha crecido mucho en los últimos años y sin darnos cuenta es utilizado en muchos sitios.

2. El estudio del lenguaje

2.1 Historia

Java fue diseñado en 1990 por James dispositivos electrónicos de consumo. Curiosamente, todo este lenguaje fue diseñado antes de que diese comienzo la era World Wide Web dispositivos electrónicos como calcul

En los primeros años de la década de los noventa, Sun Microsystems decidió intentar introducirse en el mercado de la electrónica de consumo y desarrollar programas para pequeños dispositivos electrónicos. Tr filial, denominada FirstPerson Inc., para dar margen de maniobra al equipo responsable del proyecto.

Inicialmente Java se llamó Oak inglés), aunque tuvo que cambiar de denominación, debido a que dicho nombre ya estaba registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal árbol en los alrededores del lugar de trabajo de los promotores del lenguaje.

Tres de las principales razones que llevaron a crear Java son:

  1. Creciente necesidad de interfaces mucho más cómodas e intuitivas que los sistemas de ventanas que proliferaban hasta el momento.
  2. Fiabilidad del código y facilidad de desarrollo. Gosling características que ofrecían C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuración. Por ello en los sus ratos libres creó un lenguaje de programación donde intentaba solucionar los fallos que encontraba en C
  3. Enorme diversidad de controladores electrónicos. Los dispositivos electrónicos se controlan mediante la utilización de microprocesadores de bajo precio y reducidas prestaciones, que varían cada poco tiempo y que utilizan diversos conjuntos de instrucciones. Java permite escribir un código común para todos los dispositivos.

Por todo ello, en lugar de tratar únicamente de optimizar las técnicas de desarrollo y dar por sentada la utilización de C o C++, el equipo de Gosling se planteó que tal vez los lengu existentes eran demasiado complicados como para conseguir reducir de forma apreciable la

hablara todo lo relacionado con el lenguaje Java, un lenguaje orientado a objetos que ha crecido mucho en los últimos años y sin darnos cuenta es utilizado

2. El estudio del lenguaje

Java fue diseñado en 1990 por James Gosling, de Sun Microsystems, como software para dispositivos electrónicos de consumo. Curiosamente, todo este lenguaje fue diseñado antes de que diese comienzo la era World Wide Web (WWW), puesto que fue diseñado para dispositivos electrónicos como calculadoras, microondas y la televisión interactiva.

En los primeros años de la década de los noventa, Sun Microsystems decidió intentar introducirse en el mercado de la electrónica de consumo y desarrollar programas para pequeños dispositivos electrónicos. Tras unos comienzos dudosos, Sun decidió crear una filial, denominada FirstPerson Inc., para dar margen de maniobra al equipo responsable del

Inicialmente Java se llamó Oak (roble en inglés), aunque tuvo que cambiar de denominación, debido a que dicho nombre ya estaba registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal árbol en los alrededores del lugar de trabajo de

Tres de las principales razones que llevaron a

Creciente necesidad de interfaces mucho más cómodas e intuitivas que los sistemas de ventanas que proliferaban hasta

Fiabilidad del código y facilidad de desarrollo. Gosling observó que muchas de las características que ofrecían C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuración. Por ello en los sus ratos libres creó un lenguaje de programación donde intentaba solucionar los fallos que encontraba en C Enorme diversidad de controladores electrónicos. Los dispositivos electrónicos se controlan mediante la utilización de microprocesadores de bajo precio y reducidas prestaciones, que varían cada poco tiempo y que utilizan diversos conjuntos de ones. Java permite escribir un código común para todos los dispositivos.

Por todo ello, en lugar de tratar únicamente de optimizar las técnicas de desarrollo y dar por sentada la utilización de C o C++, el equipo de Gosling se planteó que tal vez los lengu existentes eran demasiado complicados como para conseguir reducir de forma apreciable la

ILUSTRACIÓN 1 : LOGOTIPO DE

hablara todo lo relacionado con el lenguaje Java, un lenguaje orientado a objetos que ha crecido mucho en los últimos años y sin darnos cuenta es utilizado

Gosling, de Sun Microsystems, como software para dispositivos electrónicos de consumo. Curiosamente, todo este lenguaje fue diseñado antes de , puesto que fue diseñado para adoras, microondas y la televisión interactiva.

En los primeros años de la década de los noventa, Sun Microsystems decidió intentar introducirse en el mercado de la electrónica de consumo y desarrollar programas para as unos comienzos dudosos, Sun decidió crear una filial, denominada FirstPerson Inc., para dar margen de maniobra al equipo responsable del

mucho más cómodas e intuitivas que los sistemas de ventanas que proliferaban hasta

observó que muchas de las características que ofrecían C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuración. Por ello en los sus ratos libres creó un lenguaje de programación donde intentaba solucionar los fallos que encontraba en C++. Enorme diversidad de controladores electrónicos. Los dispositivos electrónicos se controlan mediante la utilización de microprocesadores de bajo precio y reducidas prestaciones, que varían cada poco tiempo y que utilizan diversos conjuntos de ones. Java permite escribir un código común para todos los dispositivos.

Por todo ello, en lugar de tratar únicamente de optimizar las técnicas de desarrollo y dar por sentada la utilización de C o C++, el equipo de Gosling se planteó que tal vez los lenguajes existentes eran demasiado complicados como para conseguir reducir de forma apreciable la

OGOTIPO DE SUN MICROSYSTEMS

UN ANÁLISIS A JAVA |

2008/

no es capaz de funciones gráficas avanzadas sin sacrificar la portabilidad entre plataformas; ya que cada una tiene un conjunto de APIs distinto, especialmente para objetos gráficos de alto nivel. Las herramientas de Swing, escritas completamente en Java, evitan este problema construyendo los objetos gráficos a partir de los mecanismos de dibujo básicos que deben estar disponibles en todas las plataformas. El inconveniente es el trabajo extra requerido para conseguir la misma apariencia de la plataforma destino. Aunque esto es posible (usando GTK+ y el Look-and-Feel de Windows), la mayoría de los usuarios no saben cómo cambiar la apariencia que se proporciona por defecto por aquella que se adapta a la de la plataforma.

Rendimiento

El rendimiento de una aplicación está determinado por multitud de factores, por lo que no es fácil hacer una comparación que resulte totalmente objetiva. En tiempo de ejecución, el rendimiento de una aplicación Java depende más de la eficiencia del compilador, o la JVM, que de las propiedades intrínsecas del lenguaje. El bytecode de Java puede ser interpretado en tiempo de ejecución por la máquina virtual, o bien compilado al cargarse el programa, o durante la propia ejecución, para generar código nativo que se ejecuta directamente sobre el hardware. Si es interpretado, será más lento que usando el código máquina intrínseco de la plataforma destino. Si es compilado, durante la carga inicial o la ejecución, la penalización está en el tiempo necesario para llevar a cabo la compilación.

Algunas características del propio lenguaje conllevan una penalización en tiempo, aunque no son únicas de Java. Algunas de ellas son el chequeo de los límites de arrays, chequeo en tiempo de ejecución de tipos, y la indirección de funciones virtuales.

El uso de un recolector de basura para eliminar de forma automática aquellos objetos no requeridos, añade una sobrecarga que puede afectar al rendimiento, o ser apenas apreciable, dependiendo de la tecnología del recolector y de la aplicación en concreto. Las JVM modernas usan recolectores de basura que gracias a rápidos algoritmos de manejo de memoria, consiguen que algunas aplicaciones puedan ejecutarse más eficientemente.

El rendimiento entre un compilador JIT y los compiladores nativos puede ser parecido, aunque la distinción no está clara en este punto. La compilación mediante el JIT puede consumir un tiempo apreciable, un inconveniente principalmente para aplicaciones de corta duración o con gran cantidad de código. Sin embargo, una vez compilado, el rendimiento del programa puede ser comparable al que consiguen compiladores nativos de la plataforma destino, inclusive en tareas numéricas. Aunque Java no permite la expansión manual de llamadas a métodos, muchos compiladores JIT realizan esta optimización durante la carga de la aplicación y pueden aprovechar información del entorno en tiempo de ejecución para llevar a cabo transformaciones eficientes durante la propia ejecución de la aplicación. Esta recompilación dinámica, como la que proporciona la máquina virtual HotSpot de Sun, puede llegar a mejorar el resultado de compiladores estáticos tradicionales, gracias a los datos que sólo están disponibles durante el tiempo de ejecución.

Java fue diseñado para ofrecer seguridad y portabilidad, y no ofrece acceso directo al hardware de la arquitectura ni al espacio de direcciones. Java no soporta expansión de código ensamblador, aunque las aplicaciones pueden acceder a características de bajo nivel usando librerías nativas (JNI, Java Native Interfaces).

2.3 Dominios de aplicación

Es importante saber donde podemos navegadores de Internet. Veamos cómo llega hasta

Java en la Web:

Los programas Java son, al fin, otro recurso más, como pueden serlo una página HTML o un archivo gráfico. Al igual que estos últimos viajan desde el ejecutan en ésta.

Verá, cuando arme alguna applet, que existe una construcción, la marca HTML <APPLET...>, que especifica un determinado lugar en un página Web, para que el browser posicione y ejecute una aplicación Java. Los archivos Java que viajan son de un tipo: se trata de archivos con extensión .class y contienen las instrucciones

Java ya compiladas, no viajan en Una applet se compone, como mínimo, d archivo .class, pero puede requerir más archivos .class (con más código para ejec browser recupera, o archivos gráficos, de sonido u otros, que la propia applet se encarga de recuperar.

Netscape y Microsoft:

La empresa Netscape, creadora del Netscape Navigator, soporta Java desde la versión 2 de su browser. Microsoft no se ha quedado atrás y soporta Java desde la versión 2.0 de su browser. Microsoft no se ha quedado atrás (pues no le convenía, dado la mayoría de las pág contiene - aunque sea - un poquito de Java) y soporta Java desde la versión 3.0 de su Explorer. Ambos browsers instalan y usan su propia máquina virtual Java. No hay d apreciables en las prestaciones

Hay que hacer algunas aclaraciones: en general, los b Java en ambientes que permiten la multitarea y los llamados múltiples hilos de ejecución (multihttrading).

Seguridad:

Debido a la naturaleza de Internet, traer programas desde un lugar lejano y no controlado a nuestra computadora, para ejecutarlo, puede ser riesgoso.

Con respecto a las applets Java debemos q browsers han implementado una leer o escribir en nuestro disco, o interferir con otras aplicaciones en ejecución. Es tan grande

minios de aplicación

podemos encontrarnos al lenguaje Java: en los exploradores o

. Veamos cómo llega hasta ahí.

Los programas Java son, al fin, otro recurso más, como pueden serlo una página HTML o un gráfico. Al igual que estos últimos viajan desde el servidor a la máquina cliente, y se

Verá, cuando arme alguna applet, que existe una HTML <APPLET...>, que especifica un determinado lugar en una , para que el browser posicione y ejecute una aplicación Java. Los archivos Java que viajan son de un tipo: se trata de archivos con extensión .class y contienen las

Java ya compiladas, no viajan en código fuente. Una applet se compone, como mínimo, de un requerir más archivos .class (con más código para ejec browser recupera, o archivos gráficos, de sonido u otros, que la propia applet se encarga de

Netscape, creadora del Netscape Navigator, soporta Java desde la versión 2 de su browser. Microsoft no se ha quedado atrás y soporta Java desde la versión 2.0 de su browser. Microsoft no se ha quedado atrás (pues no le convenía, dado la mayoría de las pág un poquito de Java) y soporta Java desde la versión 3.0 de su

. Ambos browsers instalan y usan su propia máquina virtual Java. No hay d prestaciones de estos dos browsers, respecto de Java.

Hay que hacer algunas aclaraciones: en general, los browsers, de cualquier origen, soportan Java en ambientes que permiten la multitarea y los llamados múltiples hilos de ejecución

de Internet, traer programas desde un lugar lejano y no controlado a , para ejecutarlo, puede ser riesgoso.

Con respecto a las applets Java debemos quedarnos tranquilos: Sun y los constructores de browsers han implementado una política de seguridad, que impide a una ap leer o escribir en nuestro disco, o interferir con otras aplicaciones en ejecución. Es tan grande

ILUSTRACIÓN2: WORLD WIDE WEB

UN ANÁLISIS A JAVA |

2008/

los exploradores o

Los programas Java son, al fin, otro recurso más, como pueden serlo una página HTML o un a la máquina cliente, y se

requerir más archivos .class (con más código para ejecutar), que el browser recupera, o archivos gráficos, de sonido u otros, que la propia applet se encarga de

Netscape, creadora del Netscape Navigator, soporta Java desde la versión 2 de su browser. Microsoft no se ha quedado atrás y soporta Java desde la versión 2.0 de su browser. Microsoft no se ha quedado atrás (pues no le convenía, dado la mayoría de las páginas un poquito de Java) y soporta Java desde la versión 3.0 de su Internet

. Ambos browsers instalan y usan su propia máquina virtual Java. No hay diferencias

rowsers, de cualquier origen, soportan Java en ambientes que permiten la multitarea y los llamados múltiples hilos de ejecución

de Internet, traer programas desde un lugar lejano y no controlado a

uedarnos tranquilos: Sun y los constructores de , que impide a una applet, por ejemplo, leer o escribir en nuestro disco, o interferir con otras aplicaciones en ejecución. Es tan grande

WORLD WIDE WEB

UN ANÁLISIS A JAVA |

2008/

(Just In Time). Java 1.4 (2002) - 103 paquetes, 2175 clases - También conocido como Merlin, es la versión actual. Mejora notablemente el rendimiento y añade entre otros soporte de expresiones regulares, una nueva API de entrada/salida de bajo nivel (NIO, New I/O), clases para el trabajo con Collections, procesado de XML; y mejoras de seguridad como el soporte para la criptografía mediante las Java Cryptography Extension (JCE), la inclusión de la Java Secure Socket Extension (JSSE) y el Java Authentication and Authorization Service (JAAS).

Java 1.5(Java 5.0) (Octubre 2004) - 131 paquetes, 2656 clases - También conocido como Tiger, renombrado por motivos de marketing como Java 5.0. Incluye como principales novedades: -tipos genéricos (generics) -autoboxing/unboxing conversiones impliticas entre -tipos primitivos y los wrappers correspondientes. -Enumerados -Bucles simplificados -printf -Funciones con número de parámetros variable -Metadatos en clases y métodos.

Java 6 (Diciembre de 2006)

-Incluye un nuevo marco de trabajo y APIs que hacen posible la combinación de Java con lenguajes dinámicos como PHP, Python, Ruby y JavaScript. -Incluye el motor Rhino, de Mozilla, una implementación de Javascript en Java. -Incluye un cliente completo de Servicios Web y soporta las últimas especificaciones para Servicios Web, como JAX-WS 2.0, JAXB 2.0, STAX y JAXP. -Mejoras en la interfaz gráfica y en el rendimiento.

Java SE 7

En el año 2006 aún se encontraba en las primeras etapas de planificación. En teoríaa, se

estimaba su lanzamiento para 2008(no tardará en llegar).

-Soporte para XML dentro del propio lenguaje

UN ANÁLISIS A JAVA |

2008/

  • Un nuevo concepto de superpiquete. Esto permitirá definir interfaces públicas para un conjunto de paquetes, no permitiendo el acceso a clases y métodos públicos que perte estos paquetes pero que no forman parte de la interfaz definida. -Soporte para closures.
  • Introducción de anotaciones estándar para detectar fallos en el software.

2.5 Efectos del entorno sobre el lenguaje

El diseño de Java, su robustez, el resp Java uno de los lenguajes con un mayor crecimiento y amplitud de uso en distintos ámbitos de la industria de la informática.

En dispositivos móviles y sistemas empotrados

Desde la creación de la especificación J2ME (Java 2 Platform, Micro Edition), una versión del entorno de ejecución Java reducido y altamente optimizado, especialmente desarrollado para el mercado de dispositivos electrónicos de consumo se ha producido toda una revolución en lo que a la extensión de Java se refiere.

Es posible encontrar microprocesadores específicamente diseñados para ejecutar bytecode Java y software Java para tarjetas inteligentes (JavaCard), teléfonos móviles, buscapersonas, set sintonizadores de TV y otros pequeños electrodomésticos.

El modelo de desarrollo de estas aplicaciones es muy semejante a las applets de los navegadores salvo que en este caso se denominan MIDlets

En el navegador web

Desde la primera versión de java existe la posibilidad de desarrollar pequeñas aplicaciones que luego pueden ser incrustadas en una página HTML para que sean descargadas y ejecutadas por el navegador web. Estas mini-aplicaciones se ejecutan en una JVM que el navegador tiene configurada como extensión ( plug para impedir la ejecución local de código potencialmente

El éxito de este tipo de aplicaciones (la visión del equipo de Gosling) no fue realmente el esperado debido a diversos factores, siendo quizás el más importante la lentitud y el reducido ancho de banda de las comunicaciones en aquel entonces que applets que se incrustaban en el navegador. La aparición posterior de otras alternativas (aplicaciones web dinámicas de servidor) dejó un reducido ámbito de uso para esta tecnología, quedando hoy relegada fundamentalmente a compo

Un nuevo concepto de superpiquete. Esto permitirá definir interfaces públicas para un conjunto de paquetes, no permitiendo el acceso a clases y métodos públicos que perte estos paquetes pero que no forman parte de la interfaz definida.

Introducción de anotaciones estándar para detectar fallos en el software.

2.5 Efectos del entorno sobre el lenguaje

El diseño de Java, su robustez, el respaldo de la industria y su fácil portabilidad han hecho de Java uno de los lenguajes con un mayor crecimiento y amplitud de uso en distintos ámbitos de

En dispositivos móviles y sistemas empotrados

especificación J2ME (Java 2 Platform, Micro Edition), una versión del entorno de ejecución Java reducido y altamente optimizado, especialmente desarrollado para el mercado de dispositivos electrónicos de consumo se ha producido toda una revolución en lo e a la extensión de Java se refiere.

Es posible encontrar microprocesadores específicamente diseñados para ejecutar bytecode Java y software Java para tarjetas inteligentes (JavaCard), teléfonos móviles, buscapersonas, set-top-boxes, otros pequeños

El modelo de desarrollo de estas aplicaciones es muy de los navegadores salvo que MIDlets.

Desde la primera versión de java existe la posibilidad de desarrollar pequeñas aplicaciones (Applets) en Java que luego pueden ser incrustadas en una página HTML das y ejecutadas por el aplicaciones se ejecutan en una JVM que el navegador tiene plug-in ) en un contexto de seguridad restringido configurable para impedir la ejecución local de código potencialmente malicioso.

El éxito de este tipo de aplicaciones (la visión del equipo de Gosling) no fue realmente el esperado debido a diversos factores, siendo quizás el más importante la lentitud y el reducido ancho de banda de las comunicaciones en aquel entonces que limitaba el tamaño de las applets que se incrustaban en el navegador. La aparición posterior de otras alternativas (aplicaciones web dinámicas de servidor) dejó un reducido ámbito de uso para esta tecnología, quedando hoy relegada fundamentalmente a componentes específicos para la

ILUSTRACIÓN 3: MÓVIL INICIALIZANDO J

Un nuevo concepto de superpiquete. Esto permitirá definir interfaces públicas para un conjunto de paquetes, no permitiendo el acceso a clases y métodos públicos que pertenezcan a

aldo de la industria y su fácil portabilidad han hecho de Java uno de los lenguajes con un mayor crecimiento y amplitud de uso en distintos ámbitos de

especificación J2ME (Java 2 Platform, Micro Edition), una versión del entorno de ejecución Java reducido y altamente optimizado, especialmente desarrollado

aplicaciones se ejecutan en una JVM que el navegador tiene ) en un contexto de seguridad restringido configurable

El éxito de este tipo de aplicaciones (la visión del equipo de Gosling) no fue realmente el esperado debido a diversos factores, siendo quizás el más importante la lentitud y el reducido limitaba el tamaño de las applets que se incrustaban en el navegador. La aparición posterior de otras alternativas (aplicaciones web dinámicas de servidor) dejó un reducido ámbito de uso para esta nentes específicos para la

ÓVIL INICIALIZANDO JAVA

UN ANÁLISIS A JAVA |

2008/

En las primeras versiones de la plataforma Java existían importantes limitaciones en las APIs de desarrollo gráfico (AWT). Desde la aparición de la librería Swing la situación mejoró substancialmente y posteriormente con la aparición de librerías como SWT hacen que el desarrollo de aplicaciones de escritorio complejas y con gran dinamismo, usabilidad, etc. sea relativamente sencillo.

Plataformas soportadas

Una versión del entorno de ejecución Java JRE (Java Runtime Environment) está disponible en la mayoría de equipos de escritorio. Sin embargo, Microsoft no lo ha incluido por defecto en sus sistemas operativos. En el caso de Apple, éste incluye una versión propia del JRE en su sistema operativo, el Mac OS. También es un producto que por defecto aparece en la mayoría de las distribuciones de Linux. Debido a incompatibilidades entre distintas versiones del JRE, muchas aplicaciones prefieren instalar su propia copia del JRE antes que confiar su suerte a la aplicación instalada por defecto. Los desarrolladores de applets de Java o bien deben insistir a los usuarios en la actualización del JRE, o bien desarrollar bajo una versión antigua de Java y verificar el correcto funcionamiento en las versiones posteriores.

2.6 Computadora virtual y tiempo de enlace

Java es un lenguaje de alto nivel, lo cual significa que no depende, en gran medida, de la estructura de una computadora. Es multiplataforma, esto significa que se puede ejecutar en cualquier dispositivo: ppc, x86, móviles...

No está pensado para una plataforma o procesador en particular, sino produciendo código (que se denomina bytecodes), destinado a ser interpretado por la llamada máquina virtual Java. Esta máquina no es una única, sino que hay una por cada plataforma y, en realidad, cada browser que implementa Java tiene la suya. Así, el Microsoft Explorer usará su máquina en Windows, mientras que el Netscape Navigator usará la suya, que variará de Windows a UNIX.

Pero todas tienen la misma funcionalidad (o debería esperarse eso). Tanto el usuario como los programadores no deberíamos preocuparnos por las distintas implementaciones. Sin embargo, se escuchan quejas de los desarrolladores, originadas en la pequeñas diferencias que se encuentran tanto entre una implementación y otra, como en el aspecto de la interface gráfica.

Además de la máquina virtual, cada browser instala una serie de clases, ya listas para usar, que Java espera tener disponibles en cualquier plataforma. Esas clases tienen una funcionalidad definida, que no debería sufrir modificaciones.

Tiempos de enlace

Java depende de la eficiencia del compilador o la Maquina Virtual de Java. Posee un enlace dinámico. Al contrario que en el enlace estático, que se produce en tiempo de compilación, el enlace dinámico permite a java ser un lenguaje más ligero y evita duplicaciones de código. Las librerías de código son enlazadas en el momento en que se ejecuta el programa.

UN ANÁLISIS A JAVA |

2008/

El inconveniente es que el enlace dinámico usa librerías "compartidas" que se encuentran en algún directorio del sistema operativo. Cada vez que un programa necesite usar alguna librería, el sistema operativo debería cargar esa librería para poder enlazarla, lo cual provoca problemas de dependencias.

Bibliografía

Guía de inicialización al lenguaje java [Universidad de Burgos]

<>http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_2.htm [Consulta: 24 octubre 2008].

Lenguaje de programación Java <>

http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java#Cr.C3.ADticas

[Consulta: 24 octubre 2008].

Apuntes de Java <> http://www.monografias.com/trabajos16/java/java.shtml#browsers

[Consulta: 24 octubre 2008].

Versiones de Java <> http://www.cad.com.mx/versiones_del_lenguaje_java.htm [Consulta: 28 octubre 2008].