{}const=>[]async()letfn</>var
DesarrolloProfesión

Cómo aprender Java para principiantes: instalación, sintaxis y ejemplos

Si decides aprender Java, has elegido una tecnología que abre las puertas al desarrollo empresarial, las aplicaciones de Android, los microservicios y los sistemas de alta carga. Vamos a recorrer el camino desde la instalación hasta la escritura de los primeros programas significativos.

К

Kodik

Autor

8 min de lectura

Java es uno de los lenguajes de programación más populares del mundo. Según el índice TIOBE, se ha mantenido constantemente entre los 3 idiomas principales durante más de dos décadas.

¿Por qué Java en 2025?

Antes de profundizar en los detalles técnicos, es importante comprender qué hace que Java sea una opción relevante. Este lenguaje se utiliza en sistemas críticos de bancos, agencias gubernamentales y las mayores empresas de Internet. Netflix, Amazon, LinkedIn, Twitter: todos están construidos en Java.

Ventajas clave de Java para un desarrollador principiante:

Write Once, Run Anywhere

El código escrito en Java funciona en cualquier plataforma con JVM (Java Virtual Machine) instalada. ¿Has desarrollado una aplicación en macOS? Funcionará sin cambios en Windows y Linux.

Tipificación estricta

Java te obliga a especificar explícitamente los tipos de variables, lo que puede parecer redundante al principio, pero te enseña a escribir un código predecible y fiable. Muchos errores se detectan en la fase de compilación, no en la producción.

Un ecosistema enorme

Millones de bibliotecas listas para cualquier tarea. ¿Necesitas trabajar con JSON? Tenemos Gson y Jackson. ¿Construir una API REST? Spring Boot lo hará en diez minutos. ¿Procesar grandes cantidades de datos? Apache Hadoop y Spark están a su servicio.

Demanda en el mercado laboral

La demanda de desarrolladores de Java es constantemente alta y los salarios son competitivos. Backend, Android, sistemas de procesamiento de datos: la elección de especializaciones es enorme.

🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

Instalación y configuración del entorno

Paso 1: Instalación de JDK

JDK (Java Development Kit) es un conjunto de herramientas para desarrollar en Java. En 2025, recomiendo comenzar con la última versión LTS (Long-Term Support). En el momento de escribir este artículo, es Java 21.

Para Windows:

  1. Descarga OpenJDK desde Adoptium (Eclipse Temurin) u Oracle JDK

  2. Ejecutar el instalador

  3. Añada la ruta a Java a la variable de entorno PATH

Para macOS:

# Usando Homebrew brew install openjdk@21 # Añade a ~/.zshrc o ~/.bash_profile export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH"

Para Linux (Ubuntu/Debian):

sudo apt update sudo apt install openjdk-21-jdk

Compruebe la instalación:

java -version javac -version

Debería ver información sobre la versión de Java. Si no se encuentran los comandos, comprueba el PATH.

Paso 2: Elegir un IDE

Para trabajar en serio con Java, necesitas un buen IDE. Las tres opciones principales son:

IntelliJ IDEA — líder indiscutible. Community Edition es gratuito y contiene todo lo necesario para aprender Java. Autocompletado inteligente, depurador integrado, integración con Git, soporte para Maven y Gradle desde la caja.

Eclipse — veterano de la industria, completamente gratis. Un poco más lento que IDEA, pero muy funcional.

Visual Studio Code — una versión ligera con el plugin Extension Pack for Java. Es adecuado si estás acostumbrado a VS Code, pero para Java es mejor usar un IDE completo.

Consejo: Recomiendo empezar con IntelliJ IDEA Community Edition. Descárguelo del sitio web oficial de JetBrains, instálelo y estará listo para trabajar.

Estructura del programa Java

Creemos el primer proyecto. En IntelliJ IDEA: File → New → Project → selecciona Java, especifica JDK, crea un proyecto.

Cada programa Java comienza con una clase y un método main:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Java World!");
    }
}

Vamos a analizarlo línea por línea:

public class HelloWorld — declaración de clase. En Java, todo es una clase. El nombre de la clase debe coincidir con el nombre del archivo (HelloWorld.java).

public static void main(String[] args) — punto de entrada al programa.

  • public — el método está disponible desde cualquier lugar

  • static — el método pertenece a la clase, no al objeto

  • void — el método no devuelve nada

  • String[] args — matriz de argumentos de línea de comandos

System.out.println() — salida de texto a la consola con salto de línea.

Para compilar y ejecutar desde la terminal:

javac HelloWorld.java # Compilación en HelloWorld.class java HelloWorld # Ejecución del programa

Conceptos básicos de sintaxis: variables y tipos de datos

Java es un lenguaje estrictamente tipado. Cada variable tiene un tipo que se especifica en la declaración:

public class DataTypes {
    public static void main(String[] args) {
        // Números enteros
        byte smallNumber = 127;           // -128 a 127
        short mediumNumber = 32000;       // -32,768 a 32,767
        int regularNumber = 1000000;      // -2^31 a 2^31-1
        long bigNumber = 9000000000L;     // -2^63 a 2^63-1 (¡L al final!)
        
        // Números de punto flotante
        float price = 19.99f;             // 32 bits (¡f al final!)
        double precise = 3.14159265359;   // 64 bits, por defecto
        
        // Símbolos y líneas
        char grade = 'A';                 // Un carácter
        String name = "Java Developer";   // Línea (¡objeto!)
        
        // Tipo lógico
        boolean isActive = true;
        boolean hasErrors = false;
        
        // Conclusión
        System.out.println("Name: " + name);
        System.out.println("Price: $" + price);
        System.out.println("Active: " + isActive);
    }
}

Matices importantes

String es un objeto, no primitivo. Las cadenas en Java son inmutables. Cada operación de concatenación crea una nueva cadena.

Conversión automática de tipos funciona de menor a mayor de forma segura:

int x = 100;
long y = x;  // OK, int se ajusta a long
double z = y; // OK, long se ajusta a double

La dirección inversa requiere una conversión explícita:

double pi = 3.14;
int rounded = (int) pi;  // Conversión explícita, se descarta la parte fraccionaria

Operadores y estructuras de control

Operadores condicionales

public class ControlFlow {
    public static void main(String[] args) {
        int score = 85;
        
        // If-else
        if (score >= 90) {
            System.out.println("Excellent!");
        } else if (score >= 70) {
            System.out.println("Good");
        } else if (score >= 50) {
            System.out.println("Satisfactory");
        } else {
            System.out.println("Needs improvement");
        }
        
        // Switch (sintaxis moderna de Java 14+)
        String day = "Monday";
        String mood = switch (day) {
            case "Monday" -> "Beginning of the week";
            case "Friday" -> "It's almost the weekend!";
            case "Saturday", "Sunday" -> "Weekend!";
            default -> "Ordinary day";
        };
        System.out.println(mood);
        
        // Operador ternario
        String result = score >= 50 ? "Passed" : "Fail";
    }
}

Ciclos

public class Loops {
    public static void main(String[] args) {
        // Para - cuando conocemos el número de iteraciones
        for (int i = 0; i < 5; i++) {
            System.out.println("Iteration: " + i);
        }
        
        // While - mientras la condición sea verdadera
        int count = 0;
        while (count < 3) {
            System.out.println("Count: " + count);
            count++;
        }
        
        // Do-while - se ejecutará al menos una vez
        int num = 10;
        do {
            System.out.println("Number: " + num);
            num--;
        } while (num > 5);
        
        // Enhanced for (para colecciones y matrices)
        int[] numbers = {1, 2, 3, 4, 5};
        for (int n : numbers) {
            System.out.println(n);
        }
    }
}

Matrices y colecciones

Las matrices en Java tienen un tamaño fijo:

public class ArraysExample {
    public static void main(String[] args) {
        // Anuncio e inicialización
        int[] numbers = new int[5];  // Matriz de 5 elementos
        numbers[0] = 10;
        numbers[1] = 20;
        
        // Inmediatamente con los valores
        String[] names = {"Alice", "Bob", "Charlie"};
        
        // Matriz bidimensional
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };
        
        // Búsqueda
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);
        }
        
        // O más fácil
        for (String name : names) {
            System

Para estructuras dinámicas, utilizamos colecciones:

import java.util.*;

public class CollectionsExample {
    public static void main(String[] args) {
        // ArrayList - matriz dinámica
        List<String> cities = new ArrayList<>();
        cities.add("Moscow");
        cities.add("St. Petersburg");
        cities.add("Kazan");
        cities.remove("Kazan");
        
        System.out.println("Size: " + cities.size());
        System.out.println("First: " + cities.get(0));
        
        // HashMap - clave-valor
        Map<String, Integer> ages = new HashMap<>();
        ages.put("Alice", 25);
        ages.put("Bob", 30);
        ages.put("Charlie", 28);
        
        System.out.println("Bob's age: " + ages.get("Bob"));
        
        // Recorrido de HashMap
        for (Map.Entry<String, Integer> entry : ages.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
        
        // HashSet - elementos únicos
        Set<Integer> uniqueNumbers = new HashSet<>();
        uniqueNumbers.add(1);
        uniqueNumbers.add(2);
        uniqueNumbers.add(2);  // Duplicado, no se añadirá
        
        System.out.println("Set Size: " + uniqueNumbers.size()); // 2
    }
}

Programación orientada a objetos

Java es un lenguaje de programación orientado a objetos puro. Todo es un objeto (excepto los primitivos).

// Definición de clase
public class User {
    // Campos (propiedades)
    private String name;
    private int age;
    private String email;
    
    // Constructor
    public User(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }
    
    // Getters y setters
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    // Métodos
    public void displayInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Email: " + email);
    }
    
    public boolean isAdult() {
        return age >= 18;
    }
}

// Uso
public class Main {
    public static void main(String[] args) {
        User user = new User("Alexey", 25, "alex@example.com");
        user.displayInfo();
        
        if (user.isAdult()) {
            System.out.println(user.getName() + " adult");
        }
    }
}

Java no es solo un lenguaje, es todo un ecosistema.

Empieza poco a poco, escribe código todos los días, haz cursos en Codice y Únete a nuestra comunidad de desarrolladores en canal de Telegram. Después de tres meses de práctica regular, escribirás con confianza en Java, y después de seis meses podrás solicitar un puesto de desarrollador junior. ¡Buena suerte con tu aprendizaje!

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta