Aprender Java Introducción y entorno

Módulo del curso de Java

Java
Java
Módulo del curso
2 lecciones
2 ejercicios
Actualizado: 30/06/2025

Módulo: Introducción y entorno

Este módulo forma parte del curso de Java. Incluye 2 lecciones y 2 ejercicios de programación .

Java es un lenguaje de programación orientado a objetos que se ha consolidado como una de las tecnologías más utilizadas en el desarrollo de software empresarial y aplicaciones multiplataforma. Su filosofía "write once, run anywhere" (escribe una vez, ejecuta en cualquier lugar) lo convierte en una herramienta fundamental para desarrolladores que buscan crear aplicaciones robustas y portables.

¿Qué es Java y por qué es importante?

Java fue diseñado con el objetivo de ser simple, robusto y seguro. A diferencia de otros lenguajes, Java compila el código fuente a un formato intermedio llamado bytecode, que posteriormente es interpretado por la Java Virtual Machine (JVM). Esta arquitectura permite que el mismo programa funcione en diferentes sistemas operativos sin modificaciones.

La plataforma Java incluye tres componentes principales:

  • Java Development Kit (JDK): Conjunto de herramientas para desarrollar aplicaciones
  • Java Runtime Environment (JRE): Entorno necesario para ejecutar aplicaciones Java
  • Java Virtual Machine (JVM): Motor que ejecuta el bytecode Java

Características fundamentales de Java

Orientación a objetos

Java implementa los principios de la programación orientada a objetos de forma nativa. Todo en Java es un objeto (excepto los tipos primitivos), lo que facilita la organización del código en estructuras modulares y reutilizables.

Gestión automática de memoria

Una de las ventajas más significativas de Java es su recolector de basura (garbage collector), que gestiona automáticamente la memoria. Esto elimina muchos errores comunes relacionados con la gestión manual de memoria que ocurren en otros lenguajes.

Seguridad integrada

Java incorpora múltiples capas de seguridad desde el diseño del lenguaje hasta la ejecución de aplicaciones. El sistema de tipos fuerte, la verificación de bytecode y el modelo de seguridad de la JVM proporcionan un entorno de ejecución seguro.

El ecosistema de desarrollo Java

Herramientas de desarrollo

El JDK incluye herramientas esenciales como:

  • javac: Compilador que convierte código fuente (.java) a bytecode (.class)
  • java: Intérprete que ejecuta aplicaciones Java
  • javadoc: Generador de documentación automática
  • jar: Empaquetador de aplicaciones y librerías

Entornos de desarrollo integrado (IDE)

Los IDEs más populares para Java incluyen:

  • IntelliJ IDEA: Reconocido por sus capacidades de refactoring y análisis de código
  • Eclipse: IDE gratuito con amplio ecosistema de plugins
  • NetBeans: Desarrollado por Oracle, especialmente integrado con las tecnologías Java

Gestores de dependencias

Las herramientas de automatización de construcción son fundamentales en proyectos Java:

  • Maven: Utiliza archivos XML para definir la estructura del proyecto y dependencias
  • Gradle: Emplea un DSL basado en Groovy/Kotlin para configuraciones más flexibles

Configuración del entorno de desarrollo

Instalación del JDK

La instalación del JDK varía según el sistema operativo, pero generalmente implica:

1 - Descarga del JDK desde el sitio oficial de Oracle o adoptando distribuciones como OpenJDK

2 - Configuración de variables de entorno:

export JAVA_HOME=/path/to/jdk
export PATH=$JAVA_HOME/bin:$PATH

3 - Verificación de la instalación:

java -version
javac -version

Estructura básica de un proyecto Java

Un proyecto Java típico sigue una estructura de directorios estándar:

mi-proyecto/
├── src/
│   └── main/
│       └── java/
│           └── com/
│               └── empresa/
│                   └── MiClase.java
├── target/ (archivos compilados)
└── pom.xml (si usa Maven)

Primer programa Java

El tradicional "Hello World" en Java demuestra la estructura básica:

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

Este ejemplo ilustra varios conceptos fundamentales:

  • Clase pública: Todo código Java debe estar dentro de una clase
  • Método main: Punto de entrada de la aplicación
  • Modificadores de acceso: public y static definen la visibilidad y comportamiento
  • System.out.println: Método para mostrar texto en consola

Compilación y ejecución

El proceso de desarrollo en Java sigue estos pasos:

1 - Escritura del código fuente en archivos .java

2 - Compilación con javac:

javac HolaMundo.java

3 - Ejecución con java:

java HolaMundo

La separación entre compilación y ejecución permite optimizaciones y verificaciones adicionales, contribuyendo a la robustez del lenguaje.

Conceptos de la JVM

Bytecode y portabilidad

El bytecode Java es un código intermedio independiente de la plataforma. Cuando compilas código Java, no se genera código máquina específico, sino instrucciones que la JVM puede interpretar en cualquier sistema operativo.

Carga de clases

La JVM utiliza un sistema de carga de clases dinámico que permite cargar clases solo cuando son necesarias. Este mecanismo, conocido como lazy loading, optimiza el uso de memoria y mejora el rendimiento de inicio.

Áreas de memoria

La JVM organiza la memoria en diferentes regiones especializadas:

  • Heap: Almacena objetos y arrays
  • Stack: Contiene variables locales y llamadas a métodos
  • Method Area: Guarda metadatos de clases y métodos
  • PC Register: Mantiene la dirección de la instrucción actual

Esta organización permite que el recolector de basura funcione eficientemente, liberando memoria de objetos que ya no son referenciados por la aplicación.

Lecciones de este módulo

Explora todas las lecciones disponibles en Introducción y entorno

Explora más sobre Java

Descubre más recursos de Java

Alan Sastre - Autor del curso

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Java es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.