Java es un lenguaje de programacion orientado a objetos desarrollado
por Sun Microsystems a principios de los aos 90. El lenguaje en si
mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de
objetos mas simple y elimina herramientas de bajo nivel, que suelen
inducir a muchos errores, como la manipulacion directa de punteros o
memoria.

Las aplicaciones Java estan tipicamente compiladas en un bytecode,
aunque la compilacion en codigo maquina nativo tambien es posible.
En el tiempo de ejecucion, el bytecode es normalmente interpretado o
compilado a codigo nativo para la ejecucion, aunque la ejecucion di-
recta por hardware del bytecode por un procesador Java tambien es po-
sible.

La implementacion original y de referencia del compilador, la maquina
virtual y las bibliotecas de clases de Java fueron desarrollados por
Sun Microsystems en 1995. Desde entonces, Sun ha controlado las especi-
ficaciones, el desarrollo y evolucion del lenguaje a traves del Java
Community Process, si bien otros han desarrollado tambien implementa-
ciones alternativas de estas tecnologias de Sun, algunas incluso bajo
licencias de software libre.

Entre noviembre de 2006 y mayo de 2007, Sun Microsystems libero la ma-
yor parte de sus tecnologias Java bajo la licencia GNU GPL, de acuer-
do con las especificaciones del Java Community Process, de tal forma
que practicamente todo el Java de Sun es ahora software libre (aunque
la biblioteca de clases de Sun que se requiere para ejecutar los pro-
gramas Java aun no lo es).