Java - Notas
Index:
Extras:
1 - POO: ¿Qué es la programación orientada a objetos?
2 - Creando anotaciones en Java
3 - Las características más destacables de Java 8 en adelante
4 - Bases de datos relacionales
5 - Conociendo JDBC
Ver
1 - Java JRE y JDK: Compile y ejecute su primer programa
¿Qué es Java?
Presentación
Plataforma Java
Beneficios de la JVM
¿Qué sistemas podemos desarrollar?
¿Bytecode vs EXE?
Para saber más: El nombre Bytecode
El primer programa
Instalación de java
Versiones
JRE vs JDK
Para saber más: JVM vs JRE vs JDK
Compilando código
Entrada de aplicación
Sobre compilación y ejecución
Compilar y ejecutar
Haz lo que hicimos: Instalando el JDK
Haz lo que hicimos: Escribiendo nuestro primer código
Programando con Eclipse
Haz lo que hicimos: Instala el IDE de Eclipse
Instalando eclipse
Sobre IDEs y editores
Eclipse Workspace
Usando eclipse
Proyecto Java
Acerca de View Navigator
Haz lo que hicimos: Ejecutar nuestro programa en Eclipse
Tipos y variables
Tipo entero
Crear una variable numérica
Haz lo que hicimos: usando el tipo int
Tipo double
Operaciones entre números
Haz lo que hicimos: utilizando el tipo double
Conversiones
Imprimir texto y números
Haz lo que hicimos: algunas conversiones en Java
Para saber más: Type Casting
Trabajando con caracteres
Caracteres y string
Declarando String y char
¿Cuál será el resultado?
Variables y memoria
Concatenación de String y enteros
Haz lo que hicimos: practicando char y String
Practicando condicionales
Test if
Trabajar con if
Haz lo que hicimos: el condicional if
Boolean
Tipo booleano
Operador lógico
Haz lo que hicimos: un poco más de if
Scope e inicialización
Declaración de la variable
Opcional: tasa con ifs
Haz lo que hicimos: alcance de las variables
Para saber más: el comando switch
Controlando flujo con Loops
Ciclo while
Mientras tanto, el while...
Fijación del bucle while
Scope ciclos
Un error de compilación...
Ciclo for
Transformar de while a for
Haz lo que hicimos: bucles
Ciclos anexados
Ciclos break
Enfoque en el comando break
Ejercitar bucles anidados y rotos
Desafío opcional: múltiplos de 3
Desafío opcional: factorial
Haz lo que hicimos: bucles más profundos
¿Y ahora?
Ver
2 - Java POO: Entendiendo la Orientación a Objetos
El problema del paradigma procedimental
Presentación
Introducción a orientación de objetos
Idea central del paradigma OO
Un poco de programación procedural
Sea bienvenido, Fulano
Introducción a Orientación a objetos
Definición del proyecto
Características de los objetos
Clase cuenta
Definiendo tipos
Instancias parte 1
Establecer valor de atributo
Instancias parte 2
Referencias a objetos
Valores default
Referencias parte 1
Referencias parte 2
Haga lo que hicimos en el aula: Creando las primeras clases
Definiendo Comportamientos
Creacion metodo
Métodos
Implementacion metodo
¿Cómo llamar a un método?
Uso this
¿Conoces this?
Metodo con retorno
Métodos validos
¿Dónde usar this?
Referenciando objetos
Declaración de método
Haga lo que hicimos en el aula: Creando métodos
Composición de Objetos
Referencia objetos
Extrayendo lo que es común
Valores null
Referencias inicializacion
Problema inesperado
Solucionando el problema en el código
Haga lo que hicimos en el aula: Referencias
Encapsulamiento y Visibilidad
Escapsulamiento
Público x Privado
Getter
Setter
Creando Getters e Setters
Generando getter setter
Referencias
Ventajas de los atributos privados.
Para aprender más: Cuidado con el modelo anémico
Haga lo que hicimos en el aula: Creando Getters y Setters
Constructores y miembros estáticos
Constructor
Utilizando constructores
Constructor personalizado
¿Dónde está el error?
Variables estaticas
Miembros estáticos
¿Por qué no suma?
Para obtener más información: reutilizar entre constructores
Haga lo que hicimos en el aula: Creando constructores y variables estáticas.
Ver
3 - Polimorfismo: Entendiendo Herencia e Interfaces
Introducción a herencia
Presentación
Overview Java Parte 2
Funcionario
Recordando a los constructores
Gerente
Code Smells
Herencia
Herencia en Java
Sintaxis correcta
Super y reescrita de Métodos
Overview Aula 1
Método Super
Dominando la herencia
Sobreescritura
Sobreescritura
Visibilidad
Private x Protected
Para saber más: Sobrecarga
Entendiendo Polimorfismo
Introducción a polimorfismo
¿Qué es Polimorfismo?
Aplicando polimorfismo
¿Cuál es la salida?
¿Porque no funciona?
Extends
Tipo de referencia
Resumen
Herencia y el uso de constructores
Más sobre polimorfismo
Herencia de clases
Sobre escritura métodos
Sobre el constructor
La anotación @Override
Clases y métodos abstractos
Clase abstracta
Acerca de las clases abstractas
Método abstracto
Acerca de los métodos abstractos
Cuenta abstracta
Clases y métodos abstractos
¿Conoces las clases abstractas?
Interfaces
Herencia multiple
Heredar de varias clases
Modificando la estructura
Conceptos de interfaz
Interfaces
Separando dominios
Clases abstractas x interfaces
Interfaces implementación
Resumen
Sobre el polimorfismo
Practicando herencia e interfaces
Overview herencia
Uso herencia
Revisión de conceptos de herencia
Revisión de conceptos de interfaz
Aislando funcionalidad
Composición x Herencia
Composición objetos
Ver
4 - Java Excepciones: Aprende a crear, lanzar y controlar Excepciones
Pila de ejecucion
Presentación
Preparando el ambiente
Pila de ejecución
Pila de ejecución - Gráfico
Salida del Stack
Sobre Stack
Debug
Stack de debugger
Fotografia del stack
Haga lo que hicimos en el aula: Pila de ejecución
Tratamiento de excepciones
Errores
Analizando excepciones
Acerca de las excepciones
Tipos de excepciones
Controlando errores
Flujo
Controlando errores por tipo
Multi-catch
Haga lo que hicimos en el aula: Tratamiento de excepciones
Lanzando excepciones
Overview
Resumiendo, el contenido
Lanzando excepciones
¿Por qué no se lanzó la excepción?
Diferencias entre clases de excepciones
Sobre el lanzamiento de excepciones
Haga lo que hicimos en el aula: lanzando una excepción
Checked y unchecked
Estructura de excepciones
Creando mi propia excepción
¡Miguel pide ayuda! #1
Excepciones y errores
Extendiendo una excepción
Checked y unchecked
¡Miguel pide ayuda! #2
¿Miguel entendió la clase?
Haga lo que hicimos en el aula: Checked e Unchecked
Opcional: Probando error
Aplicando excepciones
Overview: Checked y unchecked
¿Cómo compilar?
Extendiendo una excepción
¿Qué captura?
Retornando excepciones
¿Son útiles las excepciones?
Controlando checked exceptions
¿Como resolver?
Haga lo que hicimos en el aula: Catch genérico
Haga lo que hicimos en el aula: Creando la excepción
Para saber más: Nomenclatura
Finally y try with resources
Creando conexión
Errores en conexión
Palabras clave
Aplicando finally
Bloque Finally
Tratamiento de excepciones
Try with resources
Try con recurso
Haga lo que hicimos en el aula: Finally y try with resources
Para saber más: Excepciones padrones
Ver
5 - Java y Java.lang: Programe con la Clase Object y String
Organizando clases con paquetes
Presentación
Usando Paquetes
Acerca de FQN
Acerca de Paquetes
La mejor opción de paquete
Actualizando Clases
Importando Clases
Estructura de Clases
Estructura correcta
¿Dominas los paquetes?
Haga lo que hicimos en clase: Trabajando con paquetes
Todos los modificadores de acceso
Modificadores de Acceso
Acerca de los modificadores
¿Cuál modificador? #1
¿Cuál modificador? #2
Haga lo que hicimos en clase: Modificadores de acceso
Distribución de código
Documentación Javadoc
Generando Javadoc
¿Qué comentario?
Sobre javadoc
Para saber más: Todas las etiquetas
Otras anotaciones
Archivos JAR
Usando Bibliotecas con JAR
JAR Ejecutables
¿Qué es un JAR?
Ejercicio Javadoc
Haga lo que hicimos en clase: javadoc
Haga lo que hicimos en clase: JAR
Para saber más: Maven
El paquete java.lang
Conociendo java.lang
Acerca de java.lang
Excepciones de java.lang
Explorando String
Metodos String
La clase String
¿Cuál es el resultado?
La interfaz CharSequence
La clase StringBuilder
Haga lo que hicimos en clase: String
La clase Object
Explorando System
Método toString()
Propósito de toString()
Haga lo que hicimos en clase: toString()
Clase Object
Acerca de Object
Entendiendo el código
Una duda mas
Ver
6 - Java y Java.Util: Colecciones, Wrappers y Lambda Expressions
Conociendo Arrays Ver el primer video
Conociendo Arrays
Acerca de arrays
La sintaxis del array
Operaciones
¿Cuántas referencias?
Objetos
Acceso al array
Haga lo que hicimos en clase: Trabajando con arrays
Forma literal
Guardando Referencias
Cast Objeto #1
Cast Objeto #2
Array de clientes
Cast explícito e implícito
Cast implícito y explícito de referencias
Cast posible e imposible
¿Qué declaración?
Cuales casts
Acerca de ClassCastException
Metodo Main
Haga lo que hicimos en clase: Arrays
ArrayList y Generics
Operaciones Array
Guarda Cuentas
Haga lo que hicimos en clase: GuardadorDeCuentas
Guarda Referencias
Añadir referencia
Arraylist
Desventajas del array
Acerca de Arraylist
Acerca de ArrayList #2
Haga lo que hicimos en clase: ArrayList
Código heredado
Beneficios Generics (genéricos)
Haga lo que hicimos en clase: Generics
Otras formas de inicialización
Equals y más listas
Comparando Elementos
Sobreescribiendo Equals
Firma del método
Acerca de equals
Listas Anexadas
Acerca de las listas
LinkedList vs ArrayList
Haga lo que hicimos en clase: Equals
De Array para List
Vector e Interfaz Collection
Vectores
Vector, mi Vector!
Superclase Collection
¿Dominas listas?
Acerca de las colecciones
Haga lo que hicimos en clase: vector y colección
Las clases Wrappers
Integer
Autoboxing
Código confuso
Parsing
Wrappers
¿Qué primitivo?
¿Conoces los wrappers?
El Wrapper Integer
Haga lo que hicimos en clase: Wrappers
Ordenando Listas
Ordenando Listas
Usando Wrappers
Orden Natural
Interfaces para ordenar
Orden natural
¿Por qué no funciona?
Desafío de Collections
Ordenar Arrays
Haga lo que hicimos en clase: Ordenación de listas
Haga lo que hicimos en clase: Ordenar por String
Haga lo que hicimos en clase: Orden Natural
Clases anónimas y Lambdas
Clases anonimas
¿Cual objeto?
¿Qué sucede?
Lambdas
¿Y si fuera lambda?
Foreach con lambda
El patron Iterator
Haga lo que hicimos en clase: Clases anónimas
Haga lo que hicimos en clase: Lambdas
Ver
7 - Java - Dominando las Collections
Trabajando con ArrayList
Presentación
Preparando el ambiente
Conociendo de ArrayList
Cómo adicionar elementos a un ArrayList
Formas de leer una ArrayList
Recorrer una lista de String
Métodos adicionales
Ordenar una lista de String
Listas de Objetos
Creando listas con Objetos
Adicionar un Objeto a una lista
Métodos adicionales
Ordenando listas
Relacionando Listas de Objetos
Conociendo la interface List
Tipos de List
Referencias y encapsulamento entre listas
Creando listas
Diferencias entre ArrayList y LinkedList
Diferencias entre un ArrayList y LinkedList
Conociendo más de Listas
Métodos tradicionales usando Collections y Streams
Métodos de la clase Collections
Otros métodos usando Collections y Streams
Métodos de la interfaz Stream
Usando la interface Set
Conociendo la interface Set
Implementaciones de la interfaz Set
Uso de la inferface Set
Ventaja de usar un Set
Ejemplos adicionales usando la interface Set
Métodos de la interfaz Set
Métodos equals y hashCode
Porque usar equals o hashCode
Métodos equals y hashCode
Ejemplos adicionales usando equals o hashCode
Métodos de la interfaz Set
Otros tipos de Sets y Iterators
Otros tipos de Sets y Iterators
Conociendo de Iterator
Cual collection usar
Conociendo de Iterator
Maps
Definición de mapas
Conociendo de Mapas
Ejemplos de mapas
Conociendo de Mapas
Ver
8 - Introducción a SQL con Mysql: Manipule y consulte Datos
Instalando y configurando MySQL Ver el primer video
Presentación
Preparando el ambiente
Historia de SQL
Un poco más sobre SQL
Historia de MySQL
Un poco más sobre MySQL
Instalando MySQL Server
Manipulando la base de datos
Definiciones
Localización de la tabla
Conociendo Workbench
Componentes de las tablas
Creando una base de datos
Agrupando las tablas
Creando una base de datos usando el asistente
Comando para crear una base de datos
Eiminando una base de datos
Creando una base de datos
MySQL por línea de comando
Eliminación de una base de datos
Administrando las tablas de la base de datos
Tipos de datos
Tipo fecha
Creando la primera tabla
Mejor tipo de variable
Creando la tabla con el asistente
Creando tabla de vendedores
Eliminando las tablas
Eliminando tabla de vendedores
Mantenimiento de los datos en las tablas
Insertando registros en la tabla
Descargar el archivo
Incluyendo el primer vendedor
Insertando varios registros en la tabla
Incluyendo dos vendedores más
Alterando registros
Actualizando la información sobre los vendedores
Excluyendo registros
Eliminando un vendedor
Incluyendo la clave primaria
Importancia de la clave primaria
Manipulando fechas y campos lógicos
Modificando la tabla de vendedores
Consultando los datos
Incluyendo datos en la tabla
Descargar el archivo
Seleccionando a todos los vendedores
Filtrando registros
Seleccionando a un vendedor
Filtrando usando mayor que menor que y diferente
Seleccionando vendedores por el valor de la comisión
Filtrando fechas
Seleccionando a un vendedor por fecha
Filtros compuestos
Selección compuesta
Seleccionar a todos los vendedores
Ver
9 - Java y JDBC: Trabajando con una Base de Datos
Introducción a JDBC Ver el primer video
Presentación
Entorno y versiones
Preparando el ambiente
Como conectar una aplicación a una base de datos
API e Interfaces
Los primeros pasos con JDBC
Excepción cuando se recupera la conexión
Ejecutando comandos SQL en Java
Conociendo la view de la aplicación
Download del proyecto con las views
Listado con Statement #1
Listado con Statement #2
Connection, Statement y ResulSet
Creando la ConnectionFactory
El estándar Factory
INSERT con Statement
DELETE con Statement
Retorno del método execute()
Desafío: Modificando un registro con Statement
Realizando mejoras en el proyecto
Evitando SQL Injection utilizando PreparedStatement
Sobre el PreparedStatement
Desafío: Utilizando PreparedStatement en las demás operaciones
Migrando para el PreparedStatement
Tomando el control de la transacción
JDBC y transacciones
Manejando el commit y el rollback
Auto-Commit
Utilizando el try-with-resources
try-with-resources y el método close()
Escalabilidad con pool de conexiones
¿Qué es un pool y un datasource?
Aplicación con cliente único
Creando un pool de conexiones
Aplicación con múltiples clientes
Probando el pool de conexiones
Pool con conexiones ocupadas
Capa de persistencia con DAO
Creando el modelo producto
DAO con INSERT del producto
Ventajas del estándar DAO
Operación de listado en el ProductoDAO
DAOs y los constructores
Desafío: Operaciones de modificación y exclusión en el ProductoDAO
El estándar MVC
Evitando queries N + 1
Relación entre tablas
Ventajas de la clave foránea
El modelo, el controller y el DAO de categorías
Relacionando el producto con la categoría en el registro
Queries N + 1
¿Por qué evitar queries N + 1?
Utilizando INNER JOIN #1
Utilizando INNER JOIN #2
Informaciones relacionadas
Ver
Maat Reef