¿Qué es Java?
En esta lección
Java es un lenguaje de programación creado en 1995 por Sun Microsystems (hoy pertenece a Oracle) y sigue siendo uno de los más usados del mundo. En esta lección vas a entender cómo funciona por dentro, qué necesitas instalar y cómo escribir, compilar y ejecutar tu primer programa. Al terminar sabrás leer cada palabra del famoso “Hola, mundo” y corregir los errores más típicos del principio.
Para qué se usa Java
Java está en muchos más sitios de los que parece:
- Aplicaciones de empresa: bancos, aseguradoras, administraciones públicas y tiendas online grandes.
- Backend: la parte de una web que se ejecuta en el servidor, casi siempre con el framework Spring.
- Android: muchas apps están escritas en Java o en Kotlin, que funciona sobre la misma plataforma.
- Big data y herramientas: programas como Apache Kafka, Elasticsearch o el propio Minecraft (edición Java).
Por eso aparece en casi todos los ciclos de Desarrollo de Aplicaciones Web y Multiplataforma: aprender Java es aprender programación orientada a objetos, una forma de organizar el código que después reconocerás en C#, Kotlin, PHP o TypeScript.
Cuidado: Java y JavaScript no tienen nada que ver, aparte del nombre. El parecido del nombre fue una decisión de marketing de los años 90.
Cómo funciona: compilador, bytecode y JVM
Un ordenador solo entiende código máquina, y cada procesador y sistema operativo tiene el suyo. Muchos lenguajes compilan directamente a ese código máquina, así que tienes que generar un ejecutable distinto para Windows, para Mac y para Linux.
Java eligió otro camino, en dos pasos:
- Escribes el código en un archivo
.java. - El compilador (
javac) lo traduce a un archivo.classque contiene bytecode: un código intermedio que no es de ningún procesador concreto. - La máquina virtual de Java (JVM, Java Virtual Machine) lee ese bytecode y lo ejecuta en el ordenador donde esté instalada.
Hola.java --javac--> Hola.class (bytecode) --JVM--> programa en marcha
Como hay una JVM para cada sistema, el mismo .class funciona en Windows, Mac y Linux sin recompilar. Es el lema histórico de Java: write once, run anywhere, “escríbelo una vez, ejecútalo en cualquier sitio”.
Además, la JVM no se limita a interpretar: detecta las partes del programa que más se repiten y las convierte en código máquina mientras se ejecuta (compilación JIT, just in time). Por eso Java es bastante rápido.
JDK, JRE y JVM
Son tres siglas que verás constantemente. Encajan como muñecas rusas:
| Sigla | Nombre | Qué contiene | Quién lo necesita |
|---|---|---|---|
| JVM | Java Virtual Machine | La máquina que ejecuta el bytecode | Está dentro de las otras dos |
| JRE | Java Runtime Environment | JVM + bibliotecas estándar | Quien solo quiere ejecutar programas |
| JDK | Java Development Kit | JRE + compilador javac y herramientas | Quien programa en Java: tú |
Desde Java 11 ya no se distribuye un JRE por separado: se instala el JDK completo y listo.
Instalar Java 21
Java publica una versión nueva cada seis meses, pero las empresas usan las versiones LTS (Long Term Support), que reciben actualizaciones durante años. En este curso usamos Java 21, la LTS más extendida.
El JDK de Oracle tiene licencia propia; lo más cómodo es instalar un JDK libre basado en OpenJDK. Te recomendamos Eclipse Temurin, de la web adoptium.net:
- Entra en adoptium.net y descarga Temurin 21 (LTS) para tu sistema.
- Instálalo. En Windows, marca la opción que configura la variable
JAVA_HOMEy añade Java alPATH. - Abre una terminal nueva y comprueba la instalación:
java -version
javac -version
Si ves algo como openjdk version "21.0.x" y javac 21.0.x, todo está listo. Si la terminal dice que no reconoce el comando, Java no está en el PATH: reinstala marcando esa opción o reinicia la terminal.
Consejo: en Linux puedes instalarlo con el gestor de paquetes (
sudo apt install openjdk-21-jdken Ubuntu) y en Mac con Homebrew (brew install --cask temurin@21).
Dónde escribir el código: IDEs
Puedes programar con cualquier editor de texto, pero un IDE (entorno de desarrollo integrado) te marca los errores mientras escribes, autocompleta y ejecuta con un clic.
| IDE | Ventajas |
|---|---|
| IntelliJ IDEA | El más usado en empresa. La edición Community es gratuita y la Ultimate es gratis para estudiantes. |
| VS Code | Ligero. Instala el Extension Pack for Java de Microsoft. Ideal si ya lo usas para web. |
| Eclipse | Clásico y gratuito; muy presente en empresas grandes y en muchos institutos. |
| NetBeans | Gratuito y sencillo; incluye un editor visual de ventanas. |
Para empezar, cualquiera vale. Aun así, aprende también a compilar desde la terminal: entenderás lo que el IDE hace por ti y sabrás arreglarlo cuando algo falle.
Tu primer programa
Crea un archivo llamado exactamente HolaMundo.java:
public class HolaMundo {
public static void main(String[] args) {
System.out.println("¡Hola, mundo!");
}
}
Parece mucho para mostrar una frase. Vamos línea a línea:
public class HolaMundo {: en Java todo el código vive dentro de una clase. Una clasepublicdebe llamarse igual que su archivo, respetando mayúsculas:HolaMundova enHolaMundo.java.public static void main(String[] args) {: el métodomaines el punto de entrada, lo primero que ejecuta la JVM. Cópialo tal cual; en la lección de métodos verás qué significa cada palabra.System.out.println("¡Hola, mundo!");: muestra un texto en la consola y salta de línea.Systemes una clase de Java,outes la salida estándar yprintlnsignifica print line.}y}: cierran el método y la clase. Cada{necesita su}.
Dos reglas más: cada instrucción termina en punto y coma y Java distingue mayúsculas de minúsculas (system.out.println no funciona).
System.out.print hace lo mismo que println pero sin saltar de línea:
public class Saludo {
public static void main(String[] args) {
System.out.print("Hola, ");
System.out.print("Lucía");
System.out.println();
System.out.println("Bienvenida a DevSchool");
}
}
Hola, Lucía
Bienvenida a DevSchool
Compilar y ejecutar desde la terminal
Abre la terminal en la carpeta donde está el archivo y escribe:
javac HolaMundo.java # compila: crea HolaMundo.class
java HolaMundo # ejecuta la clase (sin poner .class)
¡Hola, mundo!
Fíjate en que a javac le das el archivo (HolaMundo.java) y a java le das el nombre de la clase (HolaMundo).
Ejecutar un archivo directamente
Desde Java 11 puedes saltarte el paso de compilar cuando el programa cabe en un único archivo:
java HolaMundo.java
Java compila en memoria y ejecuta, sin crear el .class. Es muy útil para pruebas y ejercicios cortos. En proyectos con muchos archivos se sigue compilando (normalmente lo hace el IDE o una herramienta como Maven o Gradle).
Comentarios
Los comentarios son texto que el compilador ignora. Sirven para explicar el porqué del código, no para repetir lo que ya se lee.
public class Comentarios {
public static void main(String[] args) {
// Comentario de una línea
/*
Comentario de
varias líneas
*/
int iva = 21; // también puede ir al final de una línea
System.out.println(iva); // 21
}
}
Hay un tercer tipo, el comentario Javadoc, que empieza por /**. Se escribe encima de clases y métodos y con él se genera documentación automática en HTML:
/**
* Programa de bienvenida del curso.
* @author Lucía
*/
public class Bienvenida {
public static void main(String[] args) {
System.out.println("Hola");
}
}
Lo usarás más en la lección de métodos.
Errores de compilación típicos
Al compilar, javac revisa todo el archivo y, si algo no cuadra, no genera el .class y te dice el archivo, la línea y el problema. Aprende a leerlos: el mensaje suele decir exactamente qué pasa.
| Mensaje | Causa habitual |
|---|---|
';' expected | Falta un punto y coma al final de la línea indicada (o la anterior). |
cannot find symbol | Nombre mal escrito (Sytem, printline) o variable no declarada. |
class HolaMundo is public, should be declared in a file named HolaMundo.java | El archivo y la clase no se llaman igual. |
reached end of file while parsing | Falta una llave } de cierre. |
unclosed string literal | Te has dejado unas comillas sin cerrar. |
Por ejemplo, este código tiene un error:
public class Error {
public static void main(String[] args) {
System.out.println("Hola")
}
}
Y javac responde:
Error.java:3: error: ';' expected
System.out.println("Hola")
^
1 error
Consejo: corrige siempre el primer error de la lista y vuelve a compilar. Un solo fallo (como una llave olvidada) puede provocar muchos mensajes en cascada.
Convenciones de nombres
Java no te obliga, pero todo el mundo sigue estas normas y tu código debe parecerse al de los demás:
| Qué | Estilo | Ejemplos |
|---|---|---|
| Clases | PascalCase (mayúscula inicial) | HolaMundo, CuentaBancaria |
| Métodos y variables | camelCase (minúscula inicial) | calcularTotal, precioFinal |
| Constantes | MAYÚSCULAS con _ | IVA, MAX_ALUMNOS |
| Paquetes | minúsculas | com.devschool.tienda |
Usa nombres que digan qué guardan o qué hacen: totalCarrito mejor que t. En este curso evitamos la ñ y las tildes en los identificadores (anio, tamanio): Java las admite, pero dan problemas con algunas herramientas y teclados.
Resumen
- Java compila el código a bytecode (
.class), que ejecuta la JVM en cualquier sistema. - JDK = herramientas de desarrollo + JRE; JRE = JVM + bibliotecas. Tú necesitas el JDK: instala Temurin 21.
- Todo programa tiene una clase y un método
main, que es donde empieza la ejecución. javac Archivo.javacompila;java Claseejecuta;java Archivo.javahace las dos cosas para programas de un archivo.- Comentarios:
//,/* */y/** */(Javadoc). - Lee los errores de compilación empezando por el primero.
En la siguiente lección verás cómo guardar datos en variables y tipos.
Pon a prueba lo que has aprendido
¿Te ha quedado claro? Márcala y verás tu progreso en el explorador.