Lo primero que hay que entender, es que con Java se pueden hacer dos tipos de programas: programas independientes (como los que se hacen con otros lenguajes como C) y Applets (que se ejecutan en un navegador, como IE o Firefox).
Los applets son programas que se pueden ejecutar en cualquier máquina con cualquier sistema operativo (siempre y cuando el navegador tenga el plugin para ejecutar java).
En un programa hecho en otros lenguajes, uno sigue el siguiente esquema:
Código Fuente==>Compilador==>Código máquina
Es decir, nosotros escribimos un código (que básicamente es texto que tiene instrucciones), el compilador lo lee y lo convierte en código máquina (que son un montón de ceros y unos) que es el lenguaje que nuestra máquina puede entender y ejecutar. Este lenguaje depende del sistema operativo y de el procesador de la máquina en la que estemos. Así, si queremos que nuestro programa corra en diferentes máquinas, debemos compilar cada vez la aplicación a fin de dar como resultado un código que la máuina pueda entender.
En cambio, al programar en java (de manera particular, los applets), uno sigue el siguiente esquema:
Código Fuente==>Compilador==>Código máquina virtual
Aquí, el código máquina virtual siguen siendo un montón de ceros y unos, pero, a diferencia de otros lenguajes, aún no puede ser entendido por alguna máquina. Para esto está nuestro navegador de internet, que convierte ese código de máquina virtual a código de máquina a secas. La diferencia importante es que el navegador va a dar como resultado un código que entienda la máquina en la cual está ejecutandose, y ya no tenemos que preocuparnos nosotros de si se está en linux, mac, windows, o cual procesador se tiene.
Bueno, ya fue mucho rollo, y aún no hemos hecho nada. Vamos ya a hacer un programita fácil, pero antes, necesitamos el compilador que convierta nuestro código fuente en código de máquina virtual, y eso lo vemos en la siguiente lección.