Java: origen, plataforma y versiones
Qué es Java y por qué sigue siendo relevante
Origen e historia
Java nació en Sun Microsystems en 1991, liderado por James Gosling. Se diseñó inicialmente para dispositivos embebidos (proyecto Oak), pero su orientación cambió hacia Internet cuando el navegador Netscape adoptó la tecnología. En 1996 se publicó Java 1.0 con la promesa "write once, run anywhere".
Oracle adquirió Sun en 2010 y desde entonces mantiene el lenguaje. Java es hoy uno de los lenguajes más usados en el mundo, especialmente en entornos empresariales, sistemas bancarios y aplicaciones Android.
La plataforma Java
"Java" hace referencia a tres cosas distintas que conviene no confundir:
- El lenguaje Java: sintaxis, semántica y reglas del lenguaje definidas en la especificación JLS.
- La JVM (Java Virtual Machine): máquina virtual que ejecuta bytecode. El compilador
javacconvierte el código fuente (.java) en bytecode (.class). La JVM ejecuta ese bytecode. Esto permite que el mismo bytecode funcione en cualquier sistema operativo donde haya una JVM disponible. - El JDK (Java Development Kit): kit de desarrollo que incluye el compilador
javac, la JVM, la biblioteca estándar (JDK API) y herramientas comojar,javadocyjdb.
Existe también el JRE (Java Runtime Environment), que es solo la JVM y las bibliotecas sin el compilador — suficiente para ejecutar aplicaciones Java pero no para desarrollarlas. Desde Java 11 el JRE independiente ya no se distribuye; el JDK lo reemplaza.
Versiones de Java
Java tiene un historial de versiones largo. Las más relevantes para entender el contexto de Java 8:
- Java 1.0 (1996): primera versión pública.
- Java 1.2 (1998): Collections Framework, Swing. Se renombró "Java 2".
- Java 5 (2004): Generics, autoboxing, enums, varargs, anotaciones. Cambio fundamental.
- Java 6 (2006): mejoras de rendimiento y scripting.
- Java 7 (2011): try-with-resources, diamond operator, NIO.2.
- Java 8 (2014): lambdas, Stream API, Optional, nueva API de fechas, default methods. El mayor cambio desde Java 5. LTS hasta 2030.
- Java 11 (2018): LTS. Elimina JRE independiente, añade
varen lambdas. - Java 17 (2021): LTS. Records, sealed classes, pattern matching.
- Java 21 (2023): LTS. Virtual threads, record patterns.
- Java 25 (2025): LTS actual. Primitive types in patterns, module imports.
Por qué Java 8: a pesar de su antigüedad, Java 8 sigue siendo la versión base en una enorme cantidad de sistemas legacy empresariales. Dominar Java 8 es condición previa para trabajar con esa base de código y para entender cómo evolucionó el lenguaje hacia versiones modernas.
Ediciones de la plataforma
- Java SE (Standard Edition): el lenguaje base y las APIs estándar. Lo que cubre este curso.
- Java EE / Jakarta EE: extensión para aplicaciones empresariales (Servlets, JPA, EJB, CDI). Hoy mantenida por la Eclipse Foundation como Jakarta EE.
- Java ME (Micro Edition): versión reducida para dispositivos con recursos limitados. Relevancia actual muy baja.
Spring Framework (y Spring Boot) se construye sobre Java SE y añade su propio contenedor de inyección de dependencias como alternativa a Java EE/Jakarta EE.