SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Destaque

Metodos en java
Metodos en javaMetodos en java
Metodos en javaaleja0940
 
JavaFX 1.2 - Introducción
JavaFX 1.2 - IntroducciónJavaFX 1.2 - Introducción
JavaFX 1.2 - Introducciónflekoso
 
Fundamentos de Java II
Fundamentos de Java IIFundamentos de Java II
Fundamentos de Java IImartosfre
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
Estructuras de control en Java
Estructuras de control en JavaEstructuras de control en Java
Estructuras de control en Javaquesada_diego
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de DatosRonny Parra
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 

Destaque (10)

Metodos en java
Metodos en javaMetodos en java
Metodos en java
 
JavaFX 1.2 - Introducción
JavaFX 1.2 - IntroducciónJavaFX 1.2 - Introducción
JavaFX 1.2 - Introducción
 
Fundamentos de Java II
Fundamentos de Java IIFundamentos de Java II
Fundamentos de Java II
 
Clases en java
Clases en javaClases en java
Clases en java
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Estructuras de control en Java
Estructuras de control en JavaEstructuras de control en Java
Estructuras de control en Java
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 

Semelhante a Definición De Java Y Just In Time

Semelhante a Definición De Java Y Just In Time (20)

Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Mau
MauMau
Mau
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
 
Java basico
Java basicoJava basico
Java basico
 
Java basico
Java basicoJava basico
Java basico
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java kaime con
Java kaime conJava kaime con
Java kaime con
 
Qué es java
Qué es javaQué es java
Qué es java
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
 
Maquinavirtual java
Maquinavirtual javaMaquinavirtual java
Maquinavirtual java
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
5 lenguaje (caso de uso)
5 lenguaje  (caso de uso)5 lenguaje  (caso de uso)
5 lenguaje (caso de uso)
 
5 lenguaje
5 lenguaje5 lenguaje
5 lenguaje
 
Java pre
Java preJava pre
Java pre
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java pre
 
Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScript
 

Último

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 

Último (20)

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 

Definición De Java Y Just In Time

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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