
Clase de presentación del curso.
En esta clase simplemente puntualizamos los requerimientos del sistema y la manera de llevar el curso.
En esta clase se profundizará en el análisis de la forma en que los arreglos son tratados en Java
En esta clase veremos los que son los arreglos multidimensionales y aprenderemos como crear, acceder y recorrer dichos arreglos con sus muchas variantes.
En esta clase aplicamos los conceptos aprendidos sobre arreglos bidimensionales para crear una aplicación que maneja un conjunto de calificaciones de un curso dado. Primera parte.
En esta clase aplicamos los conceptos aprendidos sobre arreglos
bidimensionales para crear una aplicación que maneja un conjunto de
calificaciones de un curso dado. Segunda parte.
Algunas veces no podemos conocer la cantidad exacta de argumentos que necesitamos pasarle a un método. En esta clase veremos como podemos lidear con ese problema mediante los arreglos de longitud variable.
En este clase veremos que es posible pasarle argumentos a una aplicación desde fuera del programa mediante el paso de argumentos a una aplicación en Java.
Aprenderemos también como tratar dichos argumentos y pondremos algunos ejemplos de su posible uso.
En esta clase dejamos un recurso en PDF para realizar unos cuantos ejercicios de repaso opcionales.
En esta clase se discute acerca de la utilidad de las excepciones
En esta clase se profundiza en el análisis de la pila de rastreo que se produce cuando se genera una excepción en Java.
En esta clase se muestra la manera de atrapar y dar tratamiento a las excepciones generadas en una aplicación y se muestra la utilidad y uso de la cláusula throws para declaración de las posibles excepciones en un método de Java.
En este video se muestra la manera en que nosotros mismos como programadores Java podemos lanzar una excepción e incluso relanzar después de ser capturada.
En este video se muestra lo que pasa cuando la pila de llamadas a métodos se limpia cuando ocurre una excepción y esta no recibe tratamiento inmediato. También veremos cómo podemos obtener información sobre la excepción generada a partir de el objeto Exception capturado.
En este video se muestran ejemplos de la manera en que se pueden depurar las excepciones a partir del análisis de los mensajes obtenidos en los objetos exception y en la pila de llamadas a métodos.
En este video hablamos sobre la clase StringBuilder, que nos permite crear cadenas de caracteres de manera dinámica y optimizando los recursos en memoria RAM
En este video se muestran las diferentes formas en las cuales podemos construir objetos de tipo StringBuilder
Los objetos StringBuilder permiten hacer operaciones diversas como inserción o modificación. En esta clase te muestro algo sobre esto.
En esta clase mostramos la manera de añadir caracteres a nuestros objetos de tipo StringBuilder. Recuerda que a diferencia de los Strings, los StringBuilder son objetos mutables.
En este video te muestro como insertar y eliminar caracteres de un objeto StringBuilder
En esta clase analizamos algunos métodos que podemos utilizar con la clase Character para análisis de objetos
En este video vemos la sencilla manera en la que podemos dividir una cadena de caracteres para su posterior análisis o cualquier otra cosa que necesitemos.
Las expresiones regulares son una herramienta poderosa de análisis de textos para obtener patrones o realizar validaciones a datos, etc. En este primer video, te muestro en qué consisten
Segundo video sobre las expresiones regulares en el que vamos a ver muchos de los criterios que utilizamos para poder crear expresiones regulares.
En este video mostramos como utilizar los cuántificadores en las expresiones regulares y vemos un ejemplo de cómo utilizarlo en una dirección email
En este video realizamos la validación de varios tipos de datos comunes mediante las expresiones regulares.
En este video mostramos una pequeña aplicación de las expresiones regulares para realizar operaciones de división y reemplazo de cadenas de caracteres.
Estas clases nos permiten un manejo más especializado de las expresiones regulares en Java.
Video introductorio en el cual te explico la utilidad y uso de las colecciones en Java
Comenzamos viendo nuestro primer tipo de colección. Las listas.
Segundo video en que hablamos de las Listas de objetos genéricos.
En este video mostramos como utilizar la interfaz Comparator para hacer una implementación personalizada de un ordenamiento.
En este video comprobamos la utilización del método shufflet para un ordenamiento aleatorio.
En este video mostramos el uso de los métodos copy, fill, min y max de la clase Collections
En este video mostramos el uso de los métodos addAll, frequency y disjoint de la clase Collections
En este video mostramos brevemente el concepto de una pila y mostramos la utilidad de la clase Stack para el manejo de este tipo de colecciones.
En este video mostramos la forma de trabajar de la interfaz Queue y la clase PriorityQueue para el manejo de la estructura de datos "colas"
En este video mostramos la forma de untilización de la clase HashSet para obtener un conjunto de valores.
Por definición, los conjuntos son o están desordenados, pero mediante un objeto de la clase treeSet, estos conjuntos de genéricos pueden tener a sus elementos ordenadamente.
En este video aprenderemos a utilizar la colección Map, la cual permite mapear claves a sus valores.
Este video es la segunda parte sobre el uso de los mapas. En este video en particular, vemos algunas de las operaciones que podemos hacer con los mapas.
La clase properties se utiliza para persistir claves con sus valores en archivos físicos. En este video te muestro como utilizar esta clase.
En esta clase te muestro como podemos obtener las colecciones sincronizadas y las colecciones no modificables, además de comentar algunos de sus posibles usos.
En este video se muestran las generalidades sobre la programación funcional en general asi como la introducción general al concepto de programación funcional dentro de Java.
Introducción al concepto básico de interfaz funcional que será ampliamente utilizado en los conceptos de programación funcional.
En este video se muestra la idea general de las expresiones lambda y su sintaxis para uso dentro de la programación funcional.
En esta clase se muestra el concepto general de Streams para el manejo de datos en colecciones mediante las herramientas de programación funcional de Java.
En este video mostramos la forma de obtener Streams de enteros y trabajar con ellos.
Las operaciones de reducción permiten la implementación de "nuevos métodos" adicionales a los que ya se utilizan en la clase Stream.
En este video te muestro algunas de las operaciones intermedias que podemos realizar con streams de tipo IntStream.
En este video mostramos la manera de manipular objetos de tipo Stream<Integer>.. Osea, fluj donde cada miembro es de este tipo.
En esta ocasión nuevamente, también te mostro como realizar ciertas manipulaciones sbre objetos Stream.
La interfaz funcional Predicate es una interfaz muy importante para realizar comparaciones. En este video profundizamos un poco más en ella.
Video introductorio en el que hablo sobre los métodos referenciados en Java8.
En este video explico en qué consisten los métodos referenciados de tipo destaco.
En este video mostramos un ejemplo de este raro tipo de método referenciado.
Ejemplos prácticos sobre el manejo de objetos personalizados con Streams. Primera parte.
Ejemplos prácticos sobre el manejo de objetos personalizados con Streams. Segunda parte.
Ejemplos prácticos sobre el manejo de objetos personalizados con Streams. Tercera parte.
Ejemplos prácticos sobre el manejo de objetos personalizados con Streams. Cuarta parte.
Ejemplos prácticos sobre el manejo de objetos personalizados con Streams. Quinta parte.
En este video te muestro la sencilla manera en la que puedes obtener un Stream a partir de un archivo y a partir de ahí, manipular muy fácilmente sus datos.
Tomando en cuenta lo aprendido sobre lamdas hasta ahora, en este video te muestro cómo quedaría la expresión lambda para utiliza Event Handlers.
Concluimos este interesante sección con unos comentarios finales.
A pesar de que no son tan uilizados en los círculos "comunes" de java. La realidad es que los métodos y clases genéricas son de gran utilidad y valía.
En este video te muestro la razón por la cuál podemos utilizar métodos genéricos.
En este video te muestro como realizar la implementación de los métodos genéricos.
En este video profundizamos un poco más en los métodos genéricos para analizar lo que ocurre tras bambalinas en el compilador.
El Upper bound o límite superior de los métodos genéricos nos permite limitar el alcance de los parámetros genéricos y nos abre muy buenas posiblidades de uso. En este video te muestro en qué consiste el upper bound,como implementarlo y cuáles son sus beneficios.
En este video muestro la forma de utilizar clases genéricas.
En este clase te muestro como utilizar y en qué consisten los comodines en los métodos y clases genéricas, tanto en la declaración como dentro del cuerpo de las mismas.
Video introductorio en el que te hablo sobre los beneficios del procesamiento concurrente de procesos o threads en Java.
Los threads o subprocesos pueden estar en varios estados con respecto a la JVM y también con respecto al sistema operativo. En este sencillo video te muestro cuáles son esos estados y en qué consisten.
El estado Runnable de los threads tiene dos fases en el sistema operativo. En este video te explico brevemente en qué consisten estas dos fases, las cuales están ocultas a la JVM.
Las prioridades en los threads pueden ayudar a determinar el orden de procesamiento de los threads, pero como veremos en este video, el orden de ejecución está en el solo poder del sistema operativo.
La interfaz Runnable hace posible que una clase sea ejecutada concurrentemente. En este video te muestro como realizar la implmentación de esta interfaz para que podamos realizar tareas concurrentemente.
En este video realizamos por primera vez la ejecución concurrente de varias tareas mediante un pool de threads que utiliza la interfaz Executor.
Algunas veces, los threads necesitan cierto orden para realizar las cosas y no es viable que se comporten libremente. En este video te muestro como realizar la sincronización de los threads para evitar que entre ellos mismos se estorben.
En esta clase veremos el planteamiento de un problema típico de un thread que intenta consumir un recurso que otro thread produce. Posteriormente plantearemos las posibles soluciones que podemos realizar.
En esta clase veremos el uso de los métodos wait, notify y notifyAll de uso singular en la programación concurrente y los aplicaremos para la resolución del problema del productor consumidor.
En este video mostraremos el uso de una de las muchas colecciones que están dentro del paquete de concurrencia de la API de java. Se trata de la clase ArrayBlockingQueue y veremos como esta clase nos permite resolver el problema del productor/consumidor de una manera muy sencilla.
En este video solamente repasamos las clases de manejo de colecciones del paquete de concurrencia de la API de Java. La mayoría de estas colecciones son análogas a las vistas en la sección de colecciones por lo que no es necesario repasarlas de nuevo completamente. En este video sólo hacemos mención de estas clases de colecciones concurrentes.
En este video mostramos un ejemplo en el que comparamos el rendimiento obtenido de la manera convencional y mediante el uso de la programación concurrente.
De paso, veremos que es muy sencillo realizar ordenamiento concurrentemente en Java.
En este video mostramos las diferencias en rendimiento entre la ejecución de tareas por separado en un stream, la ejecución secuencial de tareas de un stream y la ejecución en paralelo de dicho stream.
Veremos también que es sumamente fácil realizar operaciones concurrentes con los streams de Java 8
En este video se da un repaso general de lo que es una base de datos y sus aspectos y componentes generales, haciéndo énfasis en las bases de datos relacionales.
En este video simplemente mostramos de donde descargar el gestor postgresql, la manera correcta de instalarlo y presentamos brevemente la herramiento pgadmin 4
En este video mostraremos como crear una base de datos mediante la herramienta pgadmin 4 para postgres
En este video mostramos como crear una tabla de base de datos mediante la herramienta pgadmin 4 para postgres
En esta clase enseñamos como podemos insertar datos en una tabla de base de datos mediante la instrucción INSERT de SQL
En esta clase enseñamos como podemos actualizar datos en una tabla de base de datos mediante la instrucción UPDATE de SQL
En este video mostramos como realizar consultas a una base de datos mediante la instrucción SELECT de SQL.
En este video aprenderemos como refinar y filtrar los datos de nuestras busquedas mediante los operadores AND y OR de SQL.
En este video mostramos como podemos dar flexibilidad a nuestros parámetros de filtrados de una consulta a una base de datos mediante los comandos LIKE, ILIKE y NOT LIKE. En este caso, LIKE y NOT LIKE pertenecen a SQL en general pero el comando ILIKE pertenece solamente a postgresql.
En este video aprenderemos como elegir consultas por un rango de criterios mediante los operadores IN y BETWEEN de postgres.
En este video aprenderemos un poco sobre los tipos de relaciones que puede haber en tablas de una base de datos relacional. Las relaciones que estudiaremos brevemente serán la relación uno a uno, uno a muchos y muchos a muchos.
Este video es un refuerzo del video anterior en el que mostramos a nivel de datos, cómo es que se llevan a cabo las relaciones uno a uno, uno a muchos, etc.
En este video explicamos el uso y forma de implementar los constraints NOT NULL y PRIMARY KEY
En este video mostramos el uso e implementación de los constraints UNIQUE, CHECK y FOREIGN KEY.
En este video mostramos como podemos mostrar campos de varias tablas relacionadas entre sí mediante las consultas cruzadas o joins.
En esta clase mostramos como cargar el driver JDBC de postgres y realizamos la conexión a una base de datos mediante este driver
En este video mostramos como realizar las operaciones de inserción, actualización y borrado de datos de una base de datos mediante JDBC.
En este video mostramos como realizar las acciones de inserción, actualización y borrado de datos de una base de datos postgres mediante sentencias preparadas PreparedStatement.
JAVA A PROFUNDIDAD. TEMAS AVANZADOS Y DESARROLLO WEB
Con el curso Java a profundidad. Temas avanzados y desarrollo web entrarás en el mundo de la programación avanzada Java sin complicaciones.
Si eres programador novato en Java y quieres convertirte en experto, este curso es para ti.
Java es un lenguaje fantástico pero algunas veces su terminología hace que las cosas parezcan mas difíciles de lo que realmente son. Temas como Java Persistence API, JPQL, Expresiones regulares o programación concurrente con multihilos, suelen ser temas que cuesta trabajo entender pero que son habilidades que necesitamos si realmente queremos escalar en nuestros trabajos o conseguir buenos puestos en lugares importantes
Al terminar este curso podrás:
Comenzar el camino como FullStack developer en Java, ya que vemos muchos temas avanzados de backend y las bases necesarias para el desarrollo de Frontend en aplicaciones web.
Buscar un certificación de Java.
Hacerte instructor de Java.
Crear aplicaciones que destaquen del resto.
Incrementar ampliamente las habilidades que ya posees en java.
Trabajar por tu cuenta aceptando proyectos más complicados y mejor pagados.
Con el curso Java a profundidad, adquirirás las habilidades para crear software avanzado. Además, en el curso siempre trato de usar el lenguaje (hablado) más sencillo posible para que el aprendizaje sea muy ligero para ti :)
+39 horas de video en los que aprenderás:
Arreglos multidimensionales.
Excepciones a profundidad.
Manejo avanzado de cadena de caracteres.
Expresiones regulares.
Colecciones de genéricos.
Programación funcional con lambdas y streams.
Clases y métodos genéricos.
Programación concurrente con multihilos.
Fundamentos de bases de datos.
Interacción de Java con bases de datos mediante JDBC.
JPA - Java persistence API.
La API criteria de JPA.
Desarrollo web - Servlets.
Desarrollo web- JSP.
Fundamentos de Bootstrap.
Arquitectura MVC en programación web.
Además de estos temas, dentro del curso creamos un Proyecto Web MVC. Ahí aprenderás a aplicar de manera práctica los Servlets, las páginas JSP, los modelos, los Javabeans, y las bases de datos en programación web con Java. Aprenderás cómo crear un sistema web completo con módulos de productos, ventas, compras incluyendo un módulo de usuarios, login y validación de usuarios.
Si te interesa aprender a utilizar frameworks como Struts, Spring y Hibernate, al terminar este curso, te será super sencillo aprender a utilizar dichos frameworks pues todos estos frameworks están basados en muchas de las cosas que verás aquí.
¡No te arrepentirás, inscríbete ahora mismo!