Java

Java
Java
Actualizado: 30/06/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Descripción del curso

Java es un lenguaje de programación orientado a objetos y una plataforma informática que fue desarrollado por Sun Microsystems en 1995. Es ampliamente utilizado para crear aplicaciones multiplataforma, desde aplicaciones móviles hasta sistemas empresariales robustos. Su filosofía "escribe una vez, ejecuta en cualquier lugar" permite que el código Java compilado se ejecute en cualquier dispositivo que tenga instalada la Máquina Virtual de Java (JVM).

¿Qué es Java?

Java es tanto un lenguaje de programación de alto nivel como una plataforma de software. Como lenguaje, es conocido por su sintaxis similar a C++, pero con menos complejidades y una gestión automática de memoria mediante recolección de basura. Como plataforma, proporciona un entorno para desarrollar y ejecutar programas Java, incluyendo bibliotecas estándar y herramientas de desarrollo.

Características principales de Java

  • Orientado a objetos: Facilita el modelado de sistemas complejos mediante clases y objetos.
  • Multiplataforma: El código Java se compila en bytecode, que puede ejecutarse en cualquier JVM independientemente del sistema operativo.
  • Gestión automática de memoria: El recolector de basura se encarga de liberar memoria de objetos que ya no se utilizan.
  • Seguro y robusto: Incluye características que evitan errores comunes y proporciona un entorno de ejecución seguro.
  • Multihilo: Soporta programación concurrente para mejorar el rendimiento de las aplicaciones.

Instalación y configuración

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Descarga del JDK

Para desarrollar en Java, es necesario instalar el Java Development Kit (JDK). Se puede descargar desde el sitio oficial de Oracle o utilizar distribuciones de código abierto como OpenJDK.

Configuración del entorno

Después de instalar el JDK, es recomendable configurar las variables de entorno:

  • En Windows:

    • Añadir JAVA_HOME apuntando al directorio de instalación del JDK.
    • Agregar %JAVA_HOME%\bin al PATH.
  • En Linux y macOS:

    • Editar el archivo .bashrc o .bash_profile y añadir:
      export JAVA_HOME=/ruta/al/jdk
      export PATH=$JAVA_HOME/bin:$PATH
      

Sintaxis básica

Estructura de un programa Java

Un programa Java básico consiste en una clase pública con un método main:

public class HolaMundo {
    public static void main(String[] args) {
        System.out.println("¡Hola, mundo!");
    }
}

Para compilar y ejecutar:

javac HolaMundo.java
java HolaMundo

Variables y tipos de datos

Java es un lenguaje de tipado estático, por lo que es necesario declarar el tipo de las variables.

Tipos primitivos

  • Enteros: byte, short, int, long
  • Punto flotante: float, double
  • Carácter: char
  • Booleano: boolean

Ejemplo:

int edad = 30;
double salario = 2500.50;
char inicial = 'A';
boolean esActivo = true;

Tipos no primitivos

  • Clases: String, Integer, Double, etc.
  • Arreglos: Estructuras que almacenan múltiples valores del mismo tipo.

Ejemplo:

String nombre = "Ana";
int[] numeros = {1, 2, 3, 4, 5};

Operadores

Aritméticos

  • Suma: +
  • Resta: -
  • Multiplicación: *
  • División: /
  • Módulo: %

Ejemplo:

int resultado = 10 + 5;

Relacionales

  • Mayor que: >
  • Menor que: <
  • Igual a: ==
  • Diferente de: !=
  • Mayor o igual que: >=
  • Menor o igual que: <=

Lógicos

  • AND: &&
  • OR: ||
  • NOT: !

Estructuras de control

Condicionales

If-else

if (edad >= 18) {
    System.out.println("Eres mayor de edad.");
} else {
    System.out.println("Eres menor de edad.");
}

Switch

switch (dia) {
    case 1:
        System.out.println("Lunes");
        break;
    case 2:
        System.out.println("Martes");
        break;
    // ...
    default:
        System.out.println("Día no válido");
}

Bucles

For

for (int i = 0; i < 10; i++) {
    System.out.println("Iteración: " + i);
}

While

int i = 0;
while (i < 10) {
    System.out.println("Iteración: " + i);
    i++;
}

Do-while

int i = 0;
do {
    System.out.println("Iteración: " + i);
    i++;
} while (i < 10);

Programación orientada a objetos en Java

Clases y objetos

Una clase es una plantilla para crear objetos. Los objetos son instancias de clases.

Definición de una clase

public class Persona {
    String nombre;
    int edad;

    public void saludar() {
        System.out.println("Hola, me llamo " + nombre);
    }
}

Creación de un objeto

Persona persona = new Persona();
persona.nombre = "Luis";
persona.edad = 25;
persona.saludar();

Encapsulación

Consiste en ocultar los detalles internos de una clase y exponer solo lo necesario.

public class CuentaBancaria {
    private double saldo;

    public void depositar(double monto) {
        saldo += monto;
    }

    public double obtenerSaldo() {
        return saldo;
    }
}

Herencia

Permite que una clase herede atributos y métodos de otra.

public class Animal {
    public void comer() {
        System.out.println("El animal está comiendo");
    }
}

public class Perro extends Animal {
    public void ladrar() {
        System.out.println("El perro está ladrando");
    }
}

Polimorfismo

Una misma acción puede tener diferentes comportamientos según el objeto.

public class Ave extends Animal {
    @Override
    public void comer() {
        System.out.println("El ave está picoteando");
    }
}

Clases abstractas e interfaces

Clases abstractas

No pueden ser instanciadas y pueden contener métodos abstractos.

public abstract class Figura {
    public abstract double calcularArea();
}

Interfaces

Definen un conjunto de métodos que una clase debe implementar.

public interface Volador {
    void volar();
}

public class Pajaro implements Volador {
    @Override
    public void volar() {
        System.out.println("El pájaro está volando");
    }
}

Manejo de excepciones

Las excepciones manejan errores en tiempo de ejecución.

try {
    int division = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("Error: " + e.getMessage());
} finally {
    System.out.println("Bloque finally ejecutado");
}

Colecciones en Java

El framework de colecciones proporciona estructuras de datos como listas, conjuntos y mapas.

Listas

List<String> lista = new ArrayList<>();
lista.add("Elemento 1");
lista.add("Elemento 2");

Conjuntos

Set<Integer> conjunto = new HashSet<>();
conjunto.add(1);
conjunto.add(2);

Mapas

Map<String, Integer> mapa = new HashMap<>();
mapa.put("clave1", 100);
mapa.put("clave2", 200);

Entrada y salida (I/O)

Java proporciona clases para manejar archivos y flujos de datos.

try (BufferedReader br = new BufferedReader(new FileReader("archivo.txt"))) {
    String linea;
    while ((linea = br.readLine()) != null) {
        System.out.println(linea);
    }
} catch (IOException e) {
    e.printStackTrace();
}

Multihilo

Permite ejecutar varias tareas simultáneamente.

Creación de un hilo mediante Runnable

public class MiHilo implements Runnable {
    @Override
    public void run() {
        System.out.println("El hilo está corriendo");
    }
}

Thread hilo = new Thread(new MiHilo());
hilo.start();

Uso de la clase Thread

public class MiHilo extends Thread {
    @Override
    public void run() {
        System.out.println("El hilo está corriendo");
    }
}

MiHilo hilo = new MiHilo();
hilo.start();

Java Standard Library

Incluye una amplia gama de paquetes y clases útiles.

  • java.lang: Clases básicas como String, Math, Object.
  • java.util: Colecciones, fechas, utilidades.
  • java.io: Entrada y salida.
  • java.net: Operaciones de red.
  • java.sql: Acceso a bases de datos.

Herramientas de desarrollo (IDEs)

IntelliJ IDEA

IDE potente con características avanzadas.

Eclipse

Un entorno de desarrollo integrado popular y extensible.

NetBeans

IDE oficial patrocinado por Oracle.

Buenas prácticas en Java

  • Nombrado consistente: Usar convenciones de nomenclatura estándar.
  • Comentarios significativos: Añadir comentarios cuando sea necesario.
  • Gestión de excepciones adecuada: Manejar excepciones de forma efectiva.
  • Código modular: Dividir el código en métodos y clases lógicas.
  • Evitar código duplicado: Reutilizar código mediante herencia y composición.

Recursos adicionales

Completa Java y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración