En este tema se intenta dar una visión general del lenguaje de programación java.
Empezamos con un poco de historia y continuamos con las características más importantes del lenguaje, versiones, entornos de desarrollo más utilizados y la documentación.
El origen del lenguaje de programación Java se sitúa en el año 1991.
Un grupo de ingenieros liderados por James Gosling trabajaban en un proyecto para la empresa Sun Microsystems. Este grupo de ingenieros era conocido como el Green Team y al proyecto lo llamaron The Green Project.
El propósito de este proyecto era desarrollar software para programar pequeños dispositivos electrónicos: electrodomésticos y otros aparatos electrónicos de consumo.
Cada uno de estos dispositivos tenía un software específico incompatible entre ellos.

El proyecto de Gosling tenía como objetivo crear un único software que se pudiera aplicar a cualquier dispositivo compatible sin necesidad de modificar y recompilar el código para cada uno de ellos.
El objetivo de Sun era crear un lenguaje independiente del dispositivo.

Los lenguajes de programación existentes como C ó C++ no servían para ese propósito. En estos lenguajes los programas son dependientes del dispositivo. Esto quiere decir que solo pueden ejecutarse en un tipo de dispositivo concreto y deben ser modificados y compilados de nuevo para que se puedan ejecutar en dispositivos diferentes.
Por este motivo Gosling y su equipo crearon un nuevo lenguaje con las características básicas de C/C++ pero que fuera capaz de crear aplicaciones independientes de la arquitectura en la que se ejecutaran.
Inicialmente este nuevo lenguaje se llamó Oak (Roble) pero tuvieron que cambiarle el nombre porque Oak ya era una marca registrada y pasó a llamarse Green.
A pesar de lo innovador del proyecto, este nuevo lenguaje para pequeños dispositivos no tuvo demasiado éxito probablemente porque los equipos en los que se tenía que implementar no eran lo suficientemente potentes para poder utilizarlo así que Sun decidió aparcar el proyecto.
Este fracaso coincidió en el tiempo con algo que hizo que Internet, que hasta el momento no estaba muy extendida, diera un salto de gigante.
Hasta ese momento la navegación por internet se hacía mediante navegadores como el WordWideWeb. A este navegador lo llamaron después Nexus para evitar confusiones y no llamarlo igual que como era conocida internet en ese momento. El navegador Nexus permitía visitar sitios web en modo texto.

Pero en abril de 1993 se crea el navegador gráfico Mosaic.
Este navegador gráfico se podía utilizar en sistemas Unix, Windows y Mac y revolucionó la forma de navegación entre los hiperenlaces que en ese momento formaban Internet y esto hizo que la web se popularizara. Fue el primer navegador parecido a los navegadores que conocemos ahora.

Ante el auge que estaba experimentando Internet, donde cada vez más usuarios hacían uso de ella, los desarrolladores de Sun se dieron cuenta de que todo el trabajo que habían realizado en el proyecto para desarrollar un lenguaje que se pudiera implementar en pequeños dispositivos se podía adaptar y dirigir ahora a desarrollar un lenguaje para ser ejecutado en cualquier ordenador de Internet.
Básicamente Internet es una gran red mundial que conecta ordenadores con distintos sistemas operativos y distintas arquitecturas.
De esta forma, aunque inicialmente no estaba pensado para aplicaciones en Internet, el equipo de Gosling continuó con el desarrollo del nuevo lenguaje pero ahora orientado a conseguir un lenguaje que permitiera crear aplicaciones que se ejecutaran en cualquier ordenador de Internet, sin importar su sistema operativo ni su arquitectura.
Nuevo Objetivo: Crear un lenguaje multiplataforma que se pudiera ejecutar en cualquier ordenador independientemente de su arquitectura o sistema operativo.
En 1995 el lenguaje pasa a llamarse Java.

Dice la leyenda que Java debe su nombre a la cantidad de tazas de café que consumieron sus creadores durante el proceso.
Java revolucionó Internet cuando creó un nuevo tipo de programa en red llamado Applet.
Un applet es un programa que se ejecuta dentro de un navegador web. A diferencia de un programa normal, un applet no puede ejecutarse de forma independiente. Cuando el navegador carga la página que contiene un applet, éste se descarga y comienza a ejecutarse. Esto permite crear programas que cualquier usuario puede ejecutar independientemente de la arquitectura y sistema operativo del ordenador donde se ejecute. Los applets se utilizan para mostrar datos proporcionados por el servidor, manejar los datos de entrada del usuario, proporcionar aplicaciones simples como una calculadora, etc.
Ese mismo año, 1995, Gosling y su equipo lanzan el navegador HotJava.

HotJava era un clon de Mosaic pero con una gran diferencia: soportaba applets de Java.
Este navegador fue la plataforma que utilizó Sun para demostrar todo el potencial de la nueva tecnología y ayudó a que Java se popularizara.
Pronto muchos programadores se interesaron por el nuevo lenguaje y empezaron a desarrollar applets Java.
En 1996 Sun Microsystems creó JavaSoft, un grupo empresarial dedicado exclusivamente al desarrollo del lenguaje Java.
En 1997 Netscape anunció que la versión 2.0 de su navegador Netscape Navigator soportaría applets de Java. Este fue el impulso final que hizo que grandes compañías como IBM o SGI se interesaran por Java.

El eslogan que Sun popularizó sobre el lenguaje Java fue:
Write Once, Run Anywhere
También conocido con sus iniciales WORA. Esto quiere decir que un programa Java se escribe una vez y se puede ejecutar en cualquier plataforma sin tener que ser modificado ni recompilado.
Java logró convertirse en un lenguaje multiplataforma.
En 2010 Oracle compró Sun Microsystems por 7.400 millones de dólares.
Java ha continuado su evolución añadiendo nuevas características para la programación web como los JSP y Servlets, los EJBs para el desarrollo de aplicaciones empresariales e introdujo además las clases necesarias para la programación de dispositivos móviles.
En la actualidad existen tres distribuciones principales del lenguaje de programación Java:
- J2SE (Java Platform Standard Edition). Es la versión estándar de Java y es la base de las otras distribuciones. Contiene todos los fundamentos básicos del lenguaje. Está orientada al desarrollo de aplicaciones de escritorio.
- J2EE (Java Platform Enterprise Edition). Utiliza muchos de los componentes de J2SE y añade nuevas funcionalidades. Está orientada al desarrollo de servicios web, networking, aplicaciones en el lado del servidor y aplicaciones basadas en la web. Es uno de los estándares para el desarrollo de aplicaciones web.
- J2ME (Java Platform Micro Edition). Esta distribución de Java está orientada a la programación de dispositivos móviles, dispositivos inalámbricos y pequeños dispositivos.
La máquina virtual de Java
La gran innovación que introdujo el lenguaje de programación Java respecto a los demás lenguajes de programación existentes que hizo posible que un programa funcionara en cualquier plataforma, fue la creación de la Java Virtual Machine o Máquina Virtual Java.
Normalmente un programa escrito en un lenguaje de programación (código fuente) se debe traducir a un lenguaje entendible por la máquina (código máquina o ejecutable).
La traducción la realiza un programa traductor, generalmente un compilador.

Este código máquina o código ejecutable es distinto para cada arquitectura.
Ordenadores con sistemas operativos y/o hardware distintos tienen distinto código máquina.

Si cambia el código fuente hay que realizar una compilación para cada tipo de arquitectura donde ese vaya a ejecutar el programa.
Para eliminar la dependencia de la máquina:
- En Java un programa no se traduce directamente a código ejecutable.
- Un programa Java se compila y se obtiene un código intermedio llamado bytecode.
- El bytecode lo interpreta la Máquina Virtual de Java (JVM Java Virtual Machine) y obtiene el código ejecutable.

La máquina virtual de Java se distribuye gratuitamente para prácticamente todos los sistemas operativos.
Un archivo .class (bytecode) se puede ejecutar en cualquier ordenador que tenga instalada la máquina virtual java.

El programa Java se compila una única vez y el fichero bytecode que se obtiene se procesa por la máquina virtual de Java instalada en cualquier plataforma (Windows, Linux, MacOS, etc).
De esa forma Java logra ser un lenguaje que no depende de una arquitectura específica.
La JVM forma parte del JRE (Java Runtime Environment) o entorno de ejecución de Java.
Características del lenguaje de programación Java
SIMPLE
El estilo de programación es simple y el código es fácil de entender. La sintaxis es similar a la de C++ y a la de otros lenguajes como C, C#, PHP… , por lo que si se conoce alguno de estos lenguajes se facilita su aprendizaje. Además, cuando sabemos Java se puede aprender uno de estos lenguajes con mayor facilidad.
Aunque la sintaxis sea similar a C++ elimina algunas de las características más conflictivas de este lenguaje:
- No hay punteros.
- No hay sobrecarga operadores.
- No permite la herencia múltiple.
- No hay necesidad de liberar memoria manualmente. La gestión de memoria dinámica se hace automáticamente (recolector de basura).
COMPILADO E INTERPRETADO
Normalmente un lenguaje es compilado o interpretado. Java es ambas cosas. El código fuente se compila para obtener los bytecodes y posteriormente la máquina virtual interpreta esos bytecodes y los convierte en código máquina.
MULTIPLATAFORMA
Java es independiente de la plataforma y puede ejecutarse en cualquier máquina que tenga instalada la máquina virtual de java.
ORIENTADO A OBJETOS
Es un lenguaje orientado a objetos por lo que facilitará el diseño y mantenimiento de programas grandes.
ROBUSTO
Es capaz de manejar errores en tiempo de ejecución mediante el controlador de excepciones.
Utiliza un recolector de basura para eliminar de la memoria todos los objetos que ya no se usan quitando esa responsabilidad al programador.
Java es un lenguaje fuertemente tipado. Cuando se declara una variable hay que indicar de qué tipo es y este tipo ya no podrá cambiar durante la ejecución del programa. Además realiza la comprobación de tipos en cualquier operación avisando si intervienen tipos incompatibles lo que hace que se eviten errores de cálculo.
No hay punteros por lo que no se puede acceder de forma directa a la memoria del ordenador.
MULTITAREA
Permite crear programas con varios hilos (threads) de ejecución. Esto quiere decir que puede ejecutar diferentes líneas de código al mismo tiempo lo que permite aprovechar las características de los procesadores con múltiples núcleos. Los hilos son importantes en programación multimedia, aplicaciones web, etc.
Historial de versiones Java
La primera versión del lenguaje de programación Java, llamada JDK 1.0, se lanzó en enero de 1996.
Desde la primera versión Java ha experimentado numerosos cambios, así como un enorme incremento en el número de clases y paquetes que componen la biblioteca estándar.
En diciembre de 1998 se lanza la versión J2SE 1.2 bajo el nombre de Java 2.
A partir de la versión 1.6 se deja de utilizar J2SE para llamarse Java SE 6, Java SE 7…
Cada versión tiene varias revisiones, por ejemplo la versión 1.6.7 del JDK hace referencia a la revisión 7 de la versión 6.
A partir de Java 9 (2017) aparece una nueva versión de java cada 6 meses. En marzo y en septiembre.
La versión actual (Noviembre 2025) en Java SE 25 que se lanzó en septiembre de 2025.
Puedes consultar todo el historial de versiones de Java en este enlace: Historial de versiones Java
¿Qué necesito para programar en Java?
Básicamente necesitamos dos cosas para programar en Java:
1. El JDK (Java Development Kit o Kit de Desarrollo en Java). Es el software que nos permite crear aplicaciones Java de distintos tipos. Es lo primero que debemos tener instalado en nuestro ordenador. El JDK incluye:
- El JRE (Java Runtime Environment). Es la máquina virtual de Java que traduce el bytecode a código ejecutable.
- El compilador de Java. Es el encargado de convertir nuestro código fuente a bytecode.
- API de Java (Application Programming Interface). Contiene todos los paquetes, clases e interfaces del lenguaje Java. Es el código que proporciona Java para que el programador desarrolle sus propias aplicaciones. Puedes descargar el JDK desde la página de Oracle:
Puedes descargar el JDK desde la página de Oracle: Descargar JDK.
2. Un IDE (Integrated Development Environment) también conocido como entorno de desarrollo.
Aunque podemos programar con un editor de texto plano tipo bloc de notas o similar, los entornos de desarrollo son herramientas software que facilitan al programador el desarrollo de los programas.
Entre otras muchas funciones, un entorno de desarrollo contiene distintas herramientas en una sola interfaz gráfica.
Un IDE generalmente contiene:
- Un editor de texto que ayuda a escribir el código resaltando la sintaxis con indicaciones visuales, autocompletado de instrucciones, comprobación de errores de sintaxis mientras se escribe el código, etc.
- Un depurador que sirve para probar un programa y buscar la ubicación de errores en el código.
- Herramientas para compilar y ejecutar el programa.
Mediante un IDE el desarrollador de aplicaciones puede escribir, compilar y ejecutar programas de forma sencilla.
Entornos de desarrollo para Java
El kit de desarrollo básico proporcionado por Oracle es lo mínimo que se necesita para desarrollar un programa en Java. Es útil si se necesita compilar aplicaciones Java de manera esporádica. Sin embargo, la escritura y compilación de programas hecha de esta forma es bastante incomoda. Por ello lo normal es utilizar un IDE o entorno de desarrollo.
Algunas ventajas que ofrecen los entornos de desarrollo son:
- Facilidades para escribir código.
- Facilidades de depuración.
- Facilidad de configuración del sistema.
- Facilidades para organizar los archivos de código.
- Facilidad para exportar e importar proyectos
Algunos de los IDEs más utilizados para programar en Java son: NetBeans, Eclipse e IntelliJ Idea.
NETBEANS
Uno de los IDE Java más populares. Es un entorno gratuito de código abierto para la generación de código en diversos lenguajes.
Contiene prácticamente todo lo que se suele pedir a un entorno de desarrollo, editor avanzado de código, depurador, diversos lenguajes, extensiones de todo tipo, etc.
Incluye además un servidor de aplicaciones Tomcat para probar aplicaciones de servidor.
Consume bastantes recursos. Tiene una arquitectura extensible con módulos específicos para desarrollo web, aplicaciones móviles, diseño UML, etc.
Puede obtenerse gratuitamente desde Apache NetBeans

ECLIPSE
Junto a NetBeans, el entorno de desarrollo Java gratuito más utilizado Es un entorno completo de código abierto.
También permite el desarrollo en C++ y otros lenguajes de programación.
Puede descargarse desde Eclipse Foundation

Intellij IDEA
Entorno de desarrollo completo creado por JetBrains para la creación de software y está disponible en dos versiones, una versión para la comunidad y otra versión comercial.
Puede descargarse desde jetbrains.com

Documentación: la API de Java
La API de Java (Application Programming Interface) es un conjunto de herramientas que el propio lenguaje de programación Java pone a disposición de los programadores para facilitar el desarrollo de aplicaciones. En lugar de tener que escribir todo el código desde cero, Java incluye una gran colección de clases, interfaces y métodos ya preparados que resuelven tareas comunes.
Por ejemplo, la API de Java permite realizar operaciones como:
- Conectarse a bases de datos o a Internet.
- Leer y escribir en archivos.
- Trabajar con fechas y horas.
- Trabajar con colecciones de datos.
- Crear interfaces gráficas.
La API de Java está organizada en paquetes, que son conjuntos de clases relacionadas entre sí. Cada paquete agrupa funcionalidades que sirven para resolver un tipo de problema concreto. Por ejemplo:
El paquete java.io ofrece clases para manejar la entrada y salida de datos, como la lectura y escritura de archivos.
El paquete java.lang contiene las clases básicas del lenguaje, como String, Math o Object.
El paquete java.util incluye utilidades y estructuras de datos como listas, mapas o fechas.
En resumen, la API de Java es la base sobre la que se construye casi todo el código Java. Gracias a ella, los desarrolladores pueden centrarse en la lógica del programa sin tener que preocuparse por los detalles técnicos de bajo nivel.
La API del lenguaje de programación Java está disponible en https://docs.oracle.com/en/java/javase/25/docs/api/index.html
