SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

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
 

En vedette (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
 

Similaire à Definición De Java Y Just In Time

Similaire à 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
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java pre
 
Java pre
Java preJava pre
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
 

Dernier

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Dernier (12)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

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