ACTIVIDAD 2 LA MÁQUINA VIRTUAL JAVA
API Java 
Java bytecode
HISTORIA DEL LENGUAJE  JAVA
CARACTERISTICAS PRINCIPALES DEL LENGUAJE JAVA Y ¿POR QUE SE UTILIZA?
VENTAJAS Y CARACTERISTICAS  
LA MÁQUINA VIRTUAL JAVA
(Java virtual machine, JVM)
 
Es un programa ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (Java bytecode), el cual es generado por el compilador del lenguaje Java.
Con una máquina virtual para diferentes entorno podemos utilizar, por ejemplo, un programa .class
escrito en alguna versión de WIndows e interpretarlo en un entonrno Linux.
 
API Java (Application Programming interface)
La API Java es una interfaz de programación que da a los programadores un ambiente de desarrollo completo así como una infraestructura.
Provee un conjunto de clases útiles para efectuar las tareas necesarias dentro de un programa.
Está organizada en paquetes, donde cada paquete contiene un conjunto de clases relacionadas semánticamente.
 
Java bytecode
El código binario de java (bytecode) es un código máquina de bajo nivel, factible incluso como lenguaje de entrada para un microprocesador físico.
En un código intermedio más abstracto que el código máquina. Es un archivo binario que contiene código maquina producido por el compilador.
Cada código de operación tiene una longitud de un byte.
Cada instrucción tiene un código de operación entre 0 y 225 seguido de parámetros tales como registros, direcciones de memoria, etc.
Algunos sistemas, llamados traductores dinámicos o compiladores Just-in-time traducen el bytacode a código máquina inmediatamente antes de su ejecución para mejorar la velocidad de ejecución.
Su ventaja es su portabilidad: el mismo código binario puede ser ejecutado en diferentes  plataformas y arquitecturas.
Los archivos del código fuente de Java (archivos con extensión. java) son compilados en un formato llamado bytecode (archivos con extensión.class),que puede ser ejecutado entonces por el interprete de java conocido como Máquina virtual (JVM).JVM existe para casi todos los sistemas operativos como Windows, Macintosh OS, UNIX, etc.
 
1.-CODIGO FUENTE  =========>   2.- código binario de     =========>   3.- código cliente
(nombre1.java)                                        JAVA- BYECODE                            entendible para una
                                                                 (nombre2.class)                             computadora especifica
HISTORIA DEL LENGUAJE  JAVA
 
Java es un lenguaje de  programación orientado a objetos desarrollado por Sun Microsystems a principio  de los años 90´s. 
En Diciembre de 1950 Patrick  Naughton, ingeniero de Sun Microsystems, reclutó a varios colegas  entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo  proyecto conocido como "El proyecto verde".
Con la ayuda de otros  ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill Road en  Menlo Park, California. 
Y así interrumpió todas las comunicaciones regulares  con Sun y trabajó sin descanso durante 18 meses.  
Intentaban desarrollar una nueva  tecnología para programar la siguiente generación de dispositivos inteligentes,  en los que Sun veía un campo nuevo a explorar. 
Crear un lenguaje de  programación fácil de aprender y de usar. 
En un principio se consideraba  C++ como lenguaje a utilizar, pero tanto Gosling como Bill  Joy lo encontraron inadecuado. Gosling intentó primero extender y  modificar C++ resultando el lenguaje C++ ++ - (++ - porque se  añadían y eliminaban características a C++), pero lo abandonó para crear un  nuevo lenguaje desde cero al que llamo Oak (roble en inglés, según la  versión mas aceptada, por el roble que veía através de la ventana de su  despacho).  
El resultado fue un lenguaje que tenía  similitudes con C, C++ y Objetive C y que no estaba ligado a un tipo de  CPU concreta. 
Mas tarde, se cambiaría el nombre de Oak a Java, por  cuestiones de propiedad intelectural, al existir ya un lenguaje con el nombre de  Oak. 
Se supone que le pusieron ese nombre mientras tomaban café (Java es nombre  de un tipo de café, originario de Asia), aunque otros afirman que el nombre  deriva de las siglas de James Gosling, Arthur Van Hoff, y Andy  Bechtolsheim. 
En Agosto de 1991 Oak ya  corría sus primeros programas.  
Para 1992, el equipo ya había  desarrollado un sistema en un prototipo llamado Star7 (*7), dispositivo  parecido a una PDA, cuyo nombre venía de la combinación de teclas del teléfono  de la oficina del Proyecto Green que permitía a los usuarios responder al  teléfono desde cualquier lugar. 
Por su parte, el presidente de la  compañía Sun, Scott McNealy, se dio cuenta de forma oportuna y estableció  el Proyecto Verde como una subsidiaria de Sun.  
Después de mostrar a Scott McNealy  y Bill Joy los prototipos de bajo nivel del sistema, continuán con el  desarrollo, incluyendo sistema operativo, Green OS; el lenguaje Oak, las  librerías, alguna aplicación básica y el hardware, hasta que el 3 de  septiembre de 1992 se termina el desarrollo y con ello el Proyecto  Verde. 
De 1993 a 1994, el equipo de  Naughton se lanzó en busca de nuevas oportunidades en el mercado, mismas  que se fueron dando mediante el sistema operativo base.
La incipiente  subsidiaria fracasó en sus intentos de ganar una oferta con Time-Warner, sin  embargo el equipo concluyó que el mercado para consumidores electrónicos smart y  las cajas Set-Up en particular, no eran del todo eficaces. 
La subsidiaria  Proyecto verde fue amortizada por la compañía Sun a mediados de 1994. 
Afortunadamente, el cese del  Proyecto Verde coincidió con el nacimiento del fenómeno mundial  WEB. 
Al examinar las dinámicas de Internet, lo realizado por el ex equipo  verde se adecuaba a este nuevo ambiente. 
Patrick Naughton procedió a la  construcción del lenguaje de programación Java que se accionaba con un  browser prototipo. 
El 29 de septiembre de 1994 se termina el desarrollo  del prototipo de HotJava. 
Cuando se hace la demostración a los ejecutivos  de Sun, esta vez, se reconoce el potencial de Java y se acepta el  proyecto. 
Con el paso del tiempo HotJava se convirtió en un concepto práctico dentro del lenguaje Java y demostró que  podría proporcionar multiplataformas para que el código pueda ser bajado y  corrido del Host del World Wide Web y que de otra forma no son seguros.  
Una de las características de HotJava fue su soporte para los  "applets", que son las partes de Java que pueden ser cargadas mediante  una red de trabajo para después ejecutarlo localmente y así lograr soluciones  dinámicas en computación acordes al rápido crecimiento del ambiente WEB. 
El 23 de mayo de 1995, en la  conferencia SunWorld `95, John Gage, de Sun Microsystems, y Marc  Andreessen, cofundador y vicepresidente de Netscape, anunciaban la versión  alpha de Java, que en ese momento solo corría en Solaris, y el hecho de que Java  iba a ser incorporado en Netscape Navigator, el navegador mas utilizado de  Internet. 
Con la segunda alpha de Java en  Julio, se añade el soporte para Windows NT y en la tercera, en  Agosto, para Windows 95. 
En enero de 1995 Sun formá la empresa  Java Soft para dedicarse al desarrollo de productos basados en la  tecnologías Java, y así trabajar con terceras partes para crear aplicaciones,  herramientas, sistemas de plataforma y servicios para aumentar las capacidades  del lenguaje. Ese mismo mes aparece la versión 1.0 del JDK. 
Netscape Communications decide  apoyar a Java applets en Netscape Navigator 2.0. 
Ese fue el factor clave  que lanzó a Java a ser conocido y famoso. 
Y como parte de su estrategia de  crecimiento mundial y para favorecer la promoción de la nueva tecnología, Java  Soft otorgó permisos para otras compañías para que pudieran tener acceso al  código fuente y al mismo tiempo mejorar sus navegadores. 
También les  permitía crear herramientas de desarrollo para programación Java y los facultaba  para acondicionar máquinas virtuales Java (JVM), a varios sistemas  operativos. 
Muy pronto las licencias o permisos  contemplaban prestigiosas firmas como: IBM, Microsoft, Symantec, Silicon Graphics, Oracle, Toshiba  y Novell. 
Los apples Java (basados en JDK  1.02) son apoyados por los dos más populares navegadores web (Nestcape  Navigator 3.0 y Microsoft Internet Explorer 3.0. I.B.M./Lotus, Computer  Asociates, Symantec, Informix, Oracle, Sybase y otras poderosas empresas de  software están construyendo Software 100% puro JAVA, por ejemplo el Corel Office  que actualmente está en versión Beta. 
Los nuevos proyectos de Java son co-patrocinados por cientos de millones de dólares en capital disponible de  recursos tales como la Fundación Java, un fondo común de capital formado  el verano pasado por 11 compañías, incluyendo Cisco Systems, IBM, Netscape y  Oracle. 
Hoy en día, puede encontrar la  tecnología Java en redes y dispositivos que comprenden desde Internet y  superordenadores cientifícos hasta portátiles y teléfonos móviles; desde  simuladores de mercado en Wall Street hasta juegos de uso doméstico y tarjetas  de crédito: Java está en todas partes.
CARACTERISTICAS PRINCIPALES DEL LENGUAJE JAVA 
Y ¿POR QUE SE UTILIZA?
VENTAJAS Y CARACTERISTICAS
Java fue diseñado enfocandose en la seguridad y portabilidad, teniendo esto en cuenta los rasgos bajos como tipos de datos  especificos de hardware y punteros a la memoria parcial fueron itencionalmente omitidos.
Un Apllet no puede leer o escribir en los archivos de los clientes, así que no hay como traspasar un virus.
También un Applet no puede enviar informació de regreso del cliente al servidor, lo que aumenta la seguridad en la red y en internet.
1.- Usar la metodológia de programación orientada al objeto.
2.- Tener plataforma independiente - permitir que el mismo programa sea ejecutado en plataformas múltiples de computadoras (o portable)
3.- Contener el apoyo incorporado a uso en las redes de computadoras
4.- Ser diseñado para ejecutar en forma segura códigos  de fuentes remotas que pasan muchas pruebas antes de ejecutarse.
5.- Ser facil de usar y tomar prestadas las partes buenas de los lenguajes orientados a objetos anteriores como por ejemplo C ++
SIMPLE
DISTRIBUIDO
FUERTE
DINÁMICO