Módulo 1: Getting Started

 Archivo: Material de Apoyo

  Universidad Veracruzana

Asesor: José Said Olano García




    ...
Java es el primer lenguaje que tiene la virtud de ser
compilado e interpretado de forma simultánea.
Cuando un programador ...
procesadores que actualmente se conocen (habrá
que esperar a ver qué ocurre con los procesadores
Java). Por lo tanto, para...
el mismo ByteCode llega a diferentes plataformas,
éste se ejecutará de forma correcta, pues en cada
una de esas plataforma...
En realidad la máquina virtual desempeña otras
funciones, como la de aislar los programas Java al
entorno de la máquina vi...
la aplicación, obteniendo así un bajo rendimiento.
Para solucionarlo se han adoptado soluciones
intermedias. Una de las má...
ejecutable, sin necesidad de interpretaciones,
consiguiendo dotar de mayores rendimientos a la
aplicación.
Que Java es len...
No obstante, el uso de ByteCode no es la única
causa de que Java sea más lento que C++. Porque
este último lenguaje no tie...
expectativas en la compilación dinámica y en la
propia mejora de los elementos que integran la
máquina virtual como el rec...
Muy breve y de forma muy genérica, este es el
funcionamiento básico de Java. Todas las mejoras al
lenguaje se centran bási...
Upcoming SlideShare
Loading in …5
×

Definición De Java Y Just In Time

281 views

Published on

Módulo 1

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
281
On SlideShare
0
From Embeds
0
Number of Embeds
34
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Definición De Java Y Just In Time

  1. 1. Módulo 1: Getting Started Archivo: Material de Apoyo Universidad Veracruzana Asesor: José Said Olano García Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  2. 2. Java es el primer lenguaje que tiene la virtud de ser compilado e interpretado de forma simultánea. Cuando un programador realiza una aplicación o un applet en Java y lo compila, en realidad, el compilador no trabaja como un compilador de un lenguaje al uso. El compilador Java únicamente genera el denominado ByteCode. Este código es un código intermedio entre el lenguaje máquina del procesador y Java. Evidentemente este código no es ejecutable por sí mismo en ninguna plataforma hardware, pues no se corresponde con el lenguaje de ninguno de los Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  3. 3. procesadores que actualmente se conocen (habrá que esperar a ver qué ocurre con los procesadores Java). Por lo tanto, para ejecutar una aplicación Java es necesario disponer de un mecanismo que permita ejecutar el ByteCode. Este mecanismo es la denominada Máquina Virtual Java. En cada plataforma (Unix, Linux, Windows 95/NT, Macintosh, etc.) existe una máquina virtual específica. Así que cuando el ByteCode llega a la máquina virtual, ésta lo interpreta pasándolo a código máquina del procesador donde se esté trabajando, y ejecutando las instrucciones en lenguaje máquina que se deriven de la aplicación Java. De este modo, cuando Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  4. 4. el mismo ByteCode llega a diferentes plataformas, éste se ejecutará de forma correcta, pues en cada una de esas plataformas existirá la máquina virtual adecuada. Con este mecanismo se consigue la famosa multiplataforma de Java, que con sólo codificar una vez, podemos ejecutar en varias plataformas. Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  5. 5. En realidad la máquina virtual desempeña otras funciones, como la de aislar los programas Java al entorno de la máquina virtual, consiguiendo una gran seguridad. Sin embargo, como podrá estar deduciendo el lector, esto tiene algunas desventajas, y la más clara es la velocidad de ejecución. Puesto que la máquina virtual debe estar interpretando constantemente el ByteCode, se consume demasiado tiempo de procesador en realizar esta interpretación, que por otra parte no aporta nada a Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  6. 6. la aplicación, obteniendo así un bajo rendimiento. Para solucionarlo se han adoptado soluciones intermedias. Una de las más novedosas y útiles son los compiladores JIT (Just-In-Time). Estos compiladores están situados a la entrada de la máquina virtual, de forma que según llega el ByteCode lo van compilando al lenguaje máquina del procesador. A diferencia de la interpretación, el compilador no ejecuta el ByteCode, únicamente lo traduce y lo almacena en código nativo dentro de la máquina virtual. Así, una vez que la aplicación está dentro de la máquina virtual, ya se encuentra en lenguaje máquina y, por lo tanto, será directamente Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  7. 7. ejecutable, sin necesidad de interpretaciones, consiguiendo dotar de mayores rendimientos a la aplicación. Que Java es lento, resultará pues evidente, pero vamos, hasta los más pesimistas respecto a Java, como Microsoft, reconocen que Java obtendrá gracias a los compiladores JIT un rendimiento cercano al 80% del de C++, lo cual es más que suficiente para la mayoría de las aplicaciones; y más aún si se tiene en cuenta el sector al cual va dirigido Java, porque, al fin y al cabo, tampoco se trata de escribir el Doom III en Java. Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  8. 8. No obstante, el uso de ByteCode no es la única causa de que Java sea más lento que C++. Porque este último lenguaje no tiene un recolector de basura, ni que cargar clases dinámicamente, ni realizar comprobaciones en tiempo de ejecución como la de los límites de los arrays, las condiciones de seguridad o que el ByteCode no esté manipulado para acceder ilegalmente a campos marcados como privados o protegidos. Estas características suponen una sobrecarga importante, sólo el recolector de basura puede superar el 15%, y son la causa última de que Java no pueda alcanzar el cien por cien del rendimiento de C++. A pesar de todo, hay grandes Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  9. 9. expectativas en la compilación dinámica y en la propia mejora de los elementos que integran la máquina virtual como el recolector de basura, porque afortunadamente, a diferencia de otras ocasiones, muchas empresas e investigadores no se han quedado en una queja estéril y se han puesto a trabajar para solucionar estas cuestiones. A cambio de este incremento de la carga se obtiene mayor fiabilidad, lo que reduce ostensiblemente el coste de mantenimiento y un sinfín de nuevas posibilidades. Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx
  10. 10. Muy breve y de forma muy genérica, este es el funcionamiento básico de Java. Todas las mejoras al lenguaje se centran básicamente en conseguir mejores tiempos de ejecución y dotar de mayores prestaciones a la máquina virtual Presa Tepuxtepec No. 40, Col. Loma Hermosa, México D.F. CP 11200. Tel: 5580 1069 / 1355 www.develop.com.mx

×