El corazn de la Plataforma Java es el concepto comn de un procesador virtual que ejecuta programas escritos en el lenguaje de programacin Java. En concreto, ejecuta el cdigo resultante de la compilacin del cdigo fuente, conocido como btecode. Este procesador es la m!quina virtual de Java o J"# $Java "irtual #ac%ine&, que se encarga de traducir $interpretar o compilar al vuelo& el btecode en instrucciones nativas de la plataforma destino. Esto permite que una misma aplicacin Java pueda ser ejecutada en una gran variedad de sistemas con arquitecturas distintas, siempre que con una implementacin adecuada de la J"#. Este %ec%o es lo que %a dado lugar a la famosa frase' (rite once, run an(%ere $escribir una vez, ejecutar en cualquier parte&. )a condicin es que *esde la versin +., de J-E, la implementacin de la m!quina virtual de .un inclue un compilador J/0 $Just /n 0ime&. *e esta forma, en vez de la tradicional interpretacin del cdigo btecode, que da lugar a una ejecucin lenta de las aplicaciones, el J/0 convierte el btecode a cdigo nativo de la plataforma destino. Esta segunda compilacin del cdigo penaliza en cuanto a tiempo, pero el cdigo nativo resultante se ejecuta de forma m!s eficaz r!pida que si fuera interpretado. 1tras t2cnicas de compilacin din!mica del cdigo durante el tiempo de ejecucin permiten optimizar m!s an el cdigo, dejando atr!s la losa que sobre Java ca3a en cuanto a su lentitud..in embargo, no puede decirse que el resultado de la compilacin de Java pueda compilar el cdigo con un m!4imo de eficiencia, aprovec%ar los beneficios en cuanto a velocidad de cdigo m!quina nativo. 5unque los compiladores cada vez son m!s avanzados, no todas las librer3as de Java tienen asociado un cdigo m!quina equivalente que aprovec%ar. Por ejemplo, la librer3a reflect, que permite a los programadores de Java e4plorar instrucciones que slo est!n disponibles en tiempo de ejecucin, est! pobremente representado por cdigo m!quina.Java no fue la primera plataforma basada en el concepto de una m!quina virtual, aunque es la que de m!s amplia difusin %a gozado. El empleo de m!quinas virtuales se %ab3a centrado principalmente en el uso de emuladores para audar al desarrollo de %ard(are en construccin o sistemas operativos, pero la J"# fue dise6ada para ser implementada completamente en soft(are, al mismo tiempo %acer que fuera portable a todo tipo de %ard(are. Application Programming Interface 7na API $del ingl2s Applicatin Pr!ra""in! Inter#ace $ Inter#a% de Pr!ra"aci&n de Aplicacine'& es un conjunto de especificaciones de comunicacin entre componentes soft(are. -epresenta un m2todo para conseguir abstraccin en la programacin, generalmente $aunque no necesariamente& entre los niveles o capas inferiores los superiores del soft(are. 7no de los principales propsitos de una 5P/ consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. *e esta forma, los programadores se benefician de las ventajas de la 5P/ %aciendo uso de su funcionalidad, evit!ndose el trabajo de programar todo desde el principio. )as 5P/s asimismo son abstractas' el soft(are que proporciona una cierta 5P/ generalmente es llamado la implementacin de esa 5P/. Por ejemplo, se puede ver la tarea de escribir 89ola #undo8 sobre la pantalla en diferentes niveles de abstraccin' +. 9aciendo todo el trabajo desde el principio' +. 0raza, sobre papel milimetrado, la forma de las letras $ espacio& 89,o, l, a, ,#,u, n, d, o8. ,. :rea una matriz de cuadrados negros blancos que se asemeje a la sucesin de letras. ;. #ediante instrucciones en ensamblador, escribe la informacin de la matriz en la memoria intermedia $8buffer8& de pantalla. <. #ediante la instruccin adecuada, %az que la tarjeta gr!fica realice el volcado de esa informacin sobre la pantalla. ,. Por medio de un sistema operativo para %acer parte del trabajo' +. :arga una fuente tipogr!fica proporcionada por el sistema operativo. ,. 9az que el sistema operativo borre la pantalla. ;. 9az que el sistema operativo dibuje el te4to 89ola #undo8 usando la fuente cargada. ;. 7sando una aplicacin $que a su vez usa el sistema operativo& para realizar la maor parte del trabajo' +. Escribe un documento 90#) con las palabras 89ola #undo8 para que un navegador =eb como #ozilla o /nternet E4plorer pueda representarlo en el monitor. :omo se puede ver, la primera opcin requiere m!s pasos, cada uno de los cuales es muc%o m!s complicado que los pasos de las opciones siguientes. 5dem!s, no resulta nada pr!ctico usar el primer planteamiento para representar una gran cantidad de informacin, como un art3culo enciclop2dico sobre la pantalla, mientras que el segundo enfoque simplifica la tarea eliminando un paso %aciendo el resto m!s sencillos la tercera forma simplemente requiere escribir 89ola #undo8. .in embargo, las 5P/s de alto nivel generalmente pierden fle4ibilidad> por ejemplo, resulta muc%o m!s dif3cil en un navegador (eb %acer girar te4to alrededor de un punto con un contorno parpadeante que programarlo a bajo nivel. 5l elegir usar una 5P/ se debe llegar a un cierto equilibrio entre su potencia simplicidad su p2rdida de fle4ibilidad.