Programa del Curso
Introducción a Java
- Historia y evolución de Java
- Descripción general de Java versiones y actualizaciones
- Novedades de Java 17
- Configuración del Java kit de desarrollo (JDK 17) y el IDE
Java Estructura del programa
- Escribir un programa simple Java
- Java Descripción general de la sintaxis
- Compilación y ejecución de Java aplicaciones
Tipos de datos y variables
- Tipos de datos primitivos y clases contenedoras
- Declaración de variables y constantes
- Conversión de tipos y fundición
Operadores en Java
- Operadores aritméticos, relacionales, lógicos y bit a bit
- Precedencia y asociatividad del operador
Instrucciones de flujo de control
- Sentencias condicionales (if-else, switch)
- Construcciones en bucle (for, while, do-while)
- Expresiones de cambio mejoradas (característica Java 17)
Introducción a los conceptos de POO
- Clases y objetos
- Encapsulación, herencia, polimorfismo y abstracción
Creación de clases y objetos
- Declaración e inicialización de objetos
- La palabra clave this
- Constructores (predeterminados y parametrizados)
Herencia
- Clases de extensión (palabra clave extends)
- Anulación de método y súper palabra clave
- Clases y métodos abstractos
Polimorfismo
- Polimorfismo en tiempo de compilación frente a polimorfismo en tiempo de ejecución
- Sobrecarga y anulación de métodos
Interfaces
- Definición e implementación de interfaces
- Interfaces funcionales y métodos predeterminados
Clases de registros (Java 17 característica)
- Comprensión de los registros en Java 17
- Cómo los registros simplifican la encapsulación de datos
Genéricos en Java
- Descripción de los parámetros de tipo
- Clases, métodos e interfaces genéricos
- Tipos delimitados y caracteres comodín
Excepciones
- Tipos de excepciones (activadas y no marcadas)
- Bloques de intentar-atrapar-finalmente
- Lanzamiento y captura de excepciones
- Creación de excepciones personalizadas
Java Marco de Colecciones
- Interfaces de lista, conjunto, asignación y cola
- Implementaciones populares: ArrayList, HashMap, HashSet
- Iteradores y bucles for mejorados
Lambda Expressiones y funcionales Programming
- Introducción a las expresiones lambda
- Sintaxis y uso
- Interfaces funcionales
API de transmisión
- Descripción general de Java Streams
- Operaciones de flujo (filtrado, mapeo, reducción)
- Flujos paralelos y consideraciones de rendimiento
Clases selladas
- Definición y uso de clases selladas
- Subclases y restricciones permitidas
Coincidencia de patrones por ejemplode (Java 17 característica)
- Simplificación de las comprobaciones de tipos con coincidencia de patrones
Bloques de texto
- Trabajar con bloques de texto de varias líneas en Java
- Comparación con el manejo tradicional de cuerdas
Mejoras en los registros y la serialización
- Serialización y compatibilidad con versiones anteriores
- Cómo los registros mejoran la legibilidad y el mantenimiento del código
Obsolescencia y eliminación de funciones
- API obsoletas en Java 17
- Eliminación de funciones obsoletas
Mejoras en el interruptor Expression
- Coincidencia de patrones en el conmutador
- Uso de expresiones switch para un código más limpio
API de memoria y función foránea (incubadora)
- Descripción general del módulo de incubadora
- Trabajar con código nativo en Java
Java Sistema de módulos (proyecto Jigsaw)
- Introducción a los módulos en Java
- Creación y uso de módulos
- Descriptores y module-info.java de módulos
- Ventajas de la modularización
Simultaneidad y multithreading
- Introducción a los hilos y al multithreading
- Interfaz ejecutable e interfaz invocable
- Sincronización, bloqueos y seguridad de subprocesos
Asíncrono Programming con CompetableFuture
- Escritura de código asincrónico
- Uso de CompetableFuture para operaciones sin bloqueo
Implementación de Java aplicaciones
- Creación y ejecución de archivos JAR
- Aplicaciones de empaquetado y distribución Java
- Introducción a GraalVM (opcional)
Mejores prácticas y optimización de código
- Escribir código eficiente y fácil de mantener Java
- Errores comunes de rendimiento y cómo evitarlos
- Técnicas de refactorización de código
Resumen y próximos pasos
Requerimientos
- Conocimientos básicos en programación
Audiencia
- Desarrolladores de software
- Programadores
Testimonios (1)
Paciencia y explicación del instructor. Dinámica al intercalar Teoría y Practica del tema que se este tratando.