






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Lenguajes de programación, Profesor: David Atauri, Carrera: Ingeniería Informática, Universidad: UEM
Tipo: Apuntes
1 / 12
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







Índice
UN ANÁLISIS A JAVA |
2008/
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.
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:
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
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).
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
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/
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.
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.
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.
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].