La introducción a Java es el primer paso para dominar uno de los lenguajes de programación más utilizados del mundo. Desde aplicaciones empresariales hasta apps Android, pasando por sistemas bancarios y plataformas de comercio electrónico, Java está presente en prácticamente todos los ámbitos del desarrollo de software. Su filosofía "Write Once, Run Anywhere" (escribe una vez, ejecuta en cualquier parte) revolucionó la industria al permitir que un mismo programa funcione en diferentes sistemas operativos sin modificaciones.
Con más de tres décadas de evolución y una comunidad de millones de desarrolladores en todo el mundo, Java sigue siendo una de las tecnologías más demandadas en el mercado laboral. Empresas como Google, Amazon, Netflix y los principales bancos españoles basan sus sistemas críticos en Java, lo que garantiza una amplia oferta de empleo y excelentes perspectivas profesionales para quienes dominan este lenguaje.
En este artículo aprenderás desde los orígenes del lenguaje hasta cómo escribir, compilar y ejecutar tu primer programa Java. No necesitas experiencia previa en programación: te guiaremos paso a paso para que al terminar tengas una comprensión sólida de los fundamentos y puedas continuar tu aprendizaje con confianza. Cubriremos la instalación del entorno de desarrollo, la estructura básica de un programa, los IDEs más recomendados y los errores que todo principiante debe conocer para evitarlos.
🏛️ Orígenes e historia de Java
La historia de Java comienza en 1991, cuando un equipo de ingenieros de Sun Microsystems liderado por James Gosling inició un proyecto llamado Green Project. El objetivo original no era crear un lenguaje de programación para ordenadores, sino diseñar un lenguaje para controlar electrodomésticos inteligentes como televisores y microondas. Ese lenguaje se llamó inicialmente Oak (roble), en referencia a un árbol que Gosling podía ver desde su oficina.
El proyecto de electrodomésticos inteligentes no prosperó comercialmente, pero la explosión de la World Wide Web en 1993 abrió una oportunidad inesperada. El equipo reorientó el lenguaje para Internet, lo rebautizó como Java (por el café de la isla de Java, en Indonesia) y en 1995 Sun Microsystems lo presentó oficialmente al mundo. Su capacidad para ejecutar applets dentro de los navegadores web fue una revolución tecnológica en su momento.
Desde entonces, Java ha evolucionado enormemente. Oracle adquirió Sun Microsystems en 2010 y desde 2017 publica nuevas versiones cada seis meses, con versiones LTS (Long-Term Support) cada dos años. Java 21, la LTS más reciente, incorpora características modernas como registros, pattern matching y hebras virtuales (Project Loom).
⚡ Características principales del lenguaje
Java fue diseñado con un conjunto de principios que lo han mantenido relevante durante más de tres décadas. La siguiente tabla resume las características clave que definen al lenguaje:
| Característica | Descripción |
|---|---|
| Simple | Sintaxis clara inspirada en C/C++ pero sin punteros, gestión manual de memoria ni herencia múltiple de clases |
| Orientado a objetos | Todo se organiza en clases y objetos. Soporta encapsulamiento, herencia, polimorfismo y abstracción |
| Multiplataforma | El bytecode se ejecuta en cualquier sistema que tenga una JVM: Windows, macOS, Linux, Android |
| Robusto | Tipado fuerte, gestión automática de memoria (Garbage Collector) y sistema de excepciones obligatorio |
| Seguro | Sin acceso directo a memoria, verificación de bytecode, Security Manager y criptografía integrada |
| Multihilo | Soporte nativo para concurrencia mediante threads, sincronización y, desde Java 21, hebras virtuales |
| Alto rendimiento | Compilación JIT (Just-In-Time) que traduce bytecode a código máquina nativo en tiempo de ejecución |
| Distribuido | Bibliotecas integradas para protocolos de red (HTTP, TCP/IP, RMI) y servicios web |
🔧 JDK, JRE y JVM: el ecosistema Java
Antes de escribir tu primera línea de código, es fundamental entender los tres componentes del ecosistema Java. Muchos principiantes confunden estos términos, pero la distinción es sencilla si lo piensas como capas concéntricas:
La JVM (Java Virtual Machine)
La JVM es el motor de ejecución de Java. Su trabajo es leer el bytecode (archivos .class) y traducirlo a instrucciones que el sistema operativo pueda entender. Cada sistema operativo tiene su propia implementación de la JVM, pero todas ejecutan el mismo bytecode. Esta es la base de la portabilidad de Java.
El JRE (Java Runtime Environment)
El JRE incluye la JVM más el conjunto de bibliotecas estándar de Java (la API) necesarias para ejecutar programas. Si solo quieres ejecutar aplicaciones Java, el JRE es suficiente. Sin embargo, no incluye herramientas de desarrollo.
El JDK (Java Development Kit)
El JDK es el kit completo para desarrolladores. Incluye el JRE (y por tanto la JVM) más herramientas esenciales como:
| Herramienta | Función |
|---|---|
javac | Compilador: traduce código fuente .java a bytecode .class |
java | Lanzador de aplicaciones: ejecuta bytecode en la JVM |
jdb | Depurador: permite ejecutar programas paso a paso e inspeccionar variables |
javadoc | Generador de documentación HTML a partir de comentarios en el código |
jar | Empaquetador: crea archivos .jar (Java Archive) para distribuir aplicaciones |
📦 Instalación del JDK paso a paso
Para comenzar a programar en Java necesitas instalar el JDK en tu ordenador. Existen varias distribuciones gratuitas del JDK; las más populares son Oracle JDK, Eclipse Temurin (antes AdoptOpenJDK) y Amazon Corretto. Todas son compatibles y cualquiera sirve para aprender.
Pasos de instalación (Windows)
1. Descarga el instalador del JDK 21 desde adoptium.net o oracle.com/java.
2. Ejecuta el instalador y sigue las instrucciones. Anota la ruta de instalación (por ejemplo, C:\Program Files\Java\jdk-21).
3. Configura la variable de entorno JAVA_HOME apuntando a esa ruta.
4. Añade %JAVA_HOME%\bin al PATH del sistema.
5. Abre una terminal (CMD o PowerShell) y verifica la instalación:
java -version // Salida esperada: // openjdk version "21.0.2" 2024-01-16 // OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13) javac -version // Salida esperada: // javac 21.0.2
javac obtienes el mensaje «no se reconoce como comando interno o externo», significa que la variable PATH no incluye la carpeta bin del JDK. Revisa el paso 4.Verificación en macOS y Linux
En macOS puedes instalar el JDK con brew install openjdk@21. En distribuciones Linux basadas en Debian/Ubuntu, usa sudo apt install openjdk-21-jdk. La verificación es idéntica: ejecuta java -version y javac -version en la terminal.
🚀 Tu primer programa: HolaMundo.java
Es tradición en programación que el primer programa que escribes imprima el mensaje «Hola Mundo» en la pantalla. Este ritual existe desde 1978, cuando apareció en el libro The C Programming Language de Kernighan y Ritchie. En Java, el programa se ve así:
public class HolaMundo { public static void main(String[] args) { System.out.println("¡Hola Mundo!"); } }
Para probarlo, crea un archivo llamado HolaMundo.java (el nombre del archivo debe coincidir exactamente con el nombre de la clase pública), escribe el código anterior y guárdalo. En la siguiente sección veremos cómo compilarlo y ejecutarlo.
🔬 Anatomía de un programa Java
Cada línea del programa HolaMundo tiene un propósito específico. Vamos a desglosar la estructura para entender qué hace cada parte:
// 1. Declaración de la clase public class HolaMundo { // 2. Método principal (punto de entrada) public static void main(String[] args) { // 3. Instrucción que imprime en consola System.out.println("¡Hola Mundo!"); } }
| Elemento | Significado |
|---|---|
public class HolaMundo | Declara una clase pública llamada HolaMundo. En Java, todo el código vive dentro de clases |
{ } | Las llaves delimitan el cuerpo de la clase y de los métodos |
public | Modificador de acceso: la clase/método es visible desde cualquier parte |
static | El método pertenece a la clase, no a una instancia. La JVM lo invoca sin crear un objeto |
void | El método no devuelve ningún valor |
main | Nombre especial: la JVM busca este método como punto de entrada del programa |
String[] args | Array de cadenas que recibe los argumentos de la línea de comandos |
System.out.println() | Imprime un texto en la consola seguido de un salto de línea |
public static void main(String[] args) es obligatoria y exacta. Si cambias cualquier parte (por ejemplo, escribes Main con mayúscula o quitas static), la JVM no encontrará el punto de entrada y mostrará un error.⚙️ Compilación y ejecución desde la terminal
El proceso de ejecutar un programa Java consta de dos pasos fundamentales: compilar el código fuente y ejecutar el bytecode resultante. Este proceso en dos fases es lo que permite la portabilidad multiplataforma.
Paso 1: Compilar con javac
javac HolaMundo.java // Si no hay errores, se genera el archivo HolaMundo.class // Este archivo contiene bytecode, no código legible
Paso 2: Ejecutar con java
java HolaMundo // Salida: // ¡Hola Mundo!
java HolaMundo sin la extensión .class. Escribir java HolaMundo.class producirá un error «Could not find or load main class».El flujo completo
El proceso se resume en este flujo: Código fuente (.java) → javac → Bytecode (.class) → JVM → Ejecución en la plataforma. Este es el corazón del modelo «Write Once, Run Anywhere»: el bytecode es idéntico en todas las plataformas, y es la JVM de cada sistema la que se encarga de la traducción final.
Desde Java 11, también puedes ejecutar archivos de una sola clase directamente sin compilar explícitamente:
java HolaMundo.java
// Compila y ejecuta en un solo paso (desde Java 11)
Esta característica, conocida como Single-File Source-Code Programs, es muy cómoda para pruebas rápidas y ejercicios de aprendizaje. Sin embargo, para proyectos reales con múltiples archivos siempre necesitarás el flujo completo de compilación con javac. También es importante saber que los IDEs automatizan este proceso por completo: al pulsar el botón «Run», el IDE compila y ejecuta automáticamente, pero internamente sigue utilizando javac y java.
🌐 Tipos de aplicaciones Java
Java es un lenguaje extremadamente versátil. A lo largo de su historia se ha utilizado para desarrollar prácticamente cualquier tipo de software. Los principales ámbitos de aplicación son:
| Tipo de aplicación | Tecnologías | Ejemplos reales |
|---|---|---|
| Aplicaciones de escritorio | Swing, JavaFX | IntelliJ IDEA, Eclipse, JDownloader |
| Aplicaciones web | Spring Boot, Jakarta EE, Servlets, JSP | LinkedIn, eBay, portales bancarios |
| Aplicaciones móviles | Android SDK | La mayoría de apps Android hasta Kotlin |
| Microservicios | Spring Cloud, Quarkus, Micronaut | Arquitecturas Netflix, Amazon |
| Big Data | Hadoop, Apache Spark, Kafka | Procesamiento masivo de datos |
| Sistemas embebidos | Java ME, Java Card | Tarjetas SIM, dispositivos IoT |
🖥️ IDEs y editores recomendados
Aunque es posible programar en Java con un simple editor de texto y la terminal, los entornos de desarrollo integrado (IDE) multiplican tu productividad al ofrecer funciones como autocompletado inteligente, detección de errores en tiempo real, depuración visual y gestión de proyectos. Para un principiante, elegir un buen IDE marca una diferencia significativa en la curva de aprendizaje.
| IDE / Editor | Tipo | Ideal para |
|---|---|---|
| IntelliJ IDEA Community | IDE completo (gratuito) | Principiantes y profesionales. Autocompletado superior, refactoring potente |
| Eclipse | IDE completo (gratuito) | Entornos empresariales. Gran ecosistema de plugins, estándar en muchas empresas |
| VS Code + Extension Pack for Java | Editor ligero (gratuito) | Quienes prefieren un editor rápido y configurable. Buena integración con Git |
| Apache NetBeans | IDE completo (gratuito) | Desarrollo con Jakarta EE y proyectos Maven/Gradle |
Para este curso recomendamos empezar con IntelliJ IDEA Community Edition, que es gratuito y ofrece la mejor experiencia para principiantes gracias a sus sugerencias inteligentes y su interfaz intuitiva. Puedes descargarlo desde jetbrains.com/idea. A medida que avances, podrás explorar otros entornos según las necesidades de cada proyecto.
javac + java) te dará una comprensión más profunda de lo que el IDE hace automáticamente y te será muy útil cuando trabajes en servidores o entornos de integración continua.🧩 Ejemplo completo: calculadora básica
Ahora que comprendes la estructura de un programa Java, veamos un ejemplo más completo que combina varios conceptos: variables, tipos de datos, entrada por teclado con Scanner y estructuras de control. Este programa implementa una calculadora que lee dos números y una operación desde la consola:
import java.util.Scanner; public class CalculadoraBasica { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); System.out.print("Introduce el primer número: "); double num1 = entrada.nextDouble(); System.out.print("Introduce el segundo número: "); double num2 = entrada.nextDouble(); System.out.print("Operación (+, -, *, /): "); String operacion = entrada.next(); double resultado = 0; boolean valida = true; switch (operacion) { case "+": resultado = num1 + num2; break; case "-": resultado = num1 - num2; break; case "*": resultado = num1 * num2; break; case "/": if (num2 != 0) { resultado = num1 / num2; } else { System.out.println("Error: no se puede dividir entre cero."); valida = false; } break; default: System.out.println("Operación no reconocida: " + operacion); valida = false; } if (valida) { System.out.println("Resultado: " + num1 + " " + operacion + " " + num2 + " = " + resultado); } entrada.close(); } } // Ejemplo de ejecución: // Introduce el primer número: 15.5 // Introduce el segundo número: 4.2 // Operación (+, -, *, /): * // Resultado: 15.5 * 4.2 = 65.1
Este programa demuestra varios conceptos fundamentales: importación de clases (Scanner), declaración de variables con tipos (double, String, boolean), lectura de datos del usuario, estructura de selección switch, validación de errores (división entre cero) y concatenación de cadenas para mostrar el resultado formateado.
🐛 Errores frecuentes del principiante
Al dar los primeros pasos con Java es normal cometer errores. Estos son los más habituales y cómo evitarlos:
HolaMundo, el archivo debe llamarse HolaMundo.java (respetando mayúsculas). Escribir holamundo.java o Holamundo.java provocará un error de compilación.;. El compilador mostrará «; expected» si lo olvidas. Es uno de los errores más frecuentes al principio.System.out.Println con P mayúscula. Java distingue mayúsculas de minúsculas (es case-sensitive). El método correcto es println con p minúscula. Println, PRINTLN o cualquier otra variación generarán «cannot find symbol».java HolaMundo.class. Al ejecutar, se escribe solo el nombre de la clase (java HolaMundo), nunca con la extensión .class. Si incluyes la extensión, obtendrás «Could not find or load main class HolaMundo.class».{ tenga su correspondiente llave de cierre }. Un desequilibrio de llaves genera errores crípticos como «reached end of file while parsing». Un buen hábito es escribir siempre ambas llaves juntas y luego rellenar el contenido intermedio. Los IDEs modernos resaltan las parejas de llaves para facilitar esta tarea.Todos estos errores desaparecen con la práctica. La clave es leer detenidamente los mensajes del compilador: aunque al principio puedan parecer confusos, siempre indican la línea exacta del problema y suelen sugerir la solución. Con el tiempo, interpretarás los errores de forma automática y los corregirás en segundos.
✏️ Ejercicios prácticos
Ejercicio 1: Saludo personalizado
Escribe un programa Java llamado Saludo.java que declare una variable String nombre con tu nombre y luego imprima en consola el mensaje: «Hola, [nombre]. ¡Bienvenido a Java!».
Ejercicio 2: Área de un rectángulo
Crea un programa AreaRectangulo.java que declare dos variables double base y double altura, calcule el área (base * altura) y muestre el resultado formateado: «El área del rectángulo de 5.0 x 3.5 es: 17.5».
Ejercicio 3: Conversor de temperatura
Diseña un programa ConversorTemperatura.java que lea una temperatura en grados Celsius desde la consola usando Scanner, la convierta a Fahrenheit con la fórmula F = C × 9/5 + 32, y muestre el resultado. Ejemplo: si el usuario introduce 100, la salida debe ser «100.0 °C = 212.0 °F».
❓ Preguntas frecuentes sobre Introducción a Java: tu primer programa paso a paso
Las dudas más comunes respondidas de forma clara y directa.
💬 Foro de discusión
¿Tienes dudas sobre Introducción a Java: tu primer programa paso a paso? Comparte tu pregunta con la comunidad.
Todavía no hay mensajes. ¡Sé el primero en participar!