-
Lección 📈 En tendenciaConectarse en JDBC
El primer paso para usar JDBC es establecer una conexión, algo que podemos hacer con el método getConnection() de la clase DriverManager. -
LecciónCorrupción de memoria
Un ejemplo de cómo se puede producir corrupción de memoria en un programa concurrente -
Lección 📈 En tendenciaCómo insertar, modificar y borrar datos
Usando el método executeUpdate se pueden enviar sentencias y sentencias preparadas de SQL que en vez de devolver información, agreguen, borren o actualicen filas. -
Lección 🔥 PopularDataSource: así se usa JDBC en la vida real
Generalmente en aplicaciones reales no vas a utilizar directamente el DriverManager, sino que vas a preferir usar DataSource, entre otras cosas por su pool de conexiones -
LecciónColas en Java
En este ejemplo te enseño cómo construir una cola en Java utilizando una implementación basada en nodos enlazados, con operaciones para encolar, desencolar y obtener elementos. -
Lección 🔥 PopularEl patrón Iterator
Este patrón te permite recorrer una colección de elementos de manera abstracta. Te enseño en pseudocódigo cómo funciona. -
LecciónObject streams con Strings y Objects
Cómo usar ObjectOutputStream y ObjectInputStream para volcar cadenas de caracteres e instancias de clases arbitrarias como ArrayList es lo que se va a contar en este apartado. -
Lección 📈 En tendenciathrow y throws, usos y diferencias
Con la palabra clave throw podemos lanzar excepciones en un método para interrumpir su ejecución y señalizar una situación excepcional que ocurrió durante su ejecución. Si la excepción lo requiere, tendremos que usar la palabra clave throws para anunciar las excepciones que son lanzadas como parte de la definición del... -
Lección 📈 En tendenciaPreguntas típicas sobre synchronized en Java
Al usar synchronized en Java pueden surgir preguntas, y en esta lección voy a intentar aclarar conceptos y responder a las preguntas típicas que suelen aparecer. -
LecciónBufferedInputStream y rebobinado de streams
La idea de BufferedInputStream es que con una única llamada a read() podamos abarcar tanto como sea posible, para no tener que estar continuamente accediendo al stream que va por debajo. Lo importante es que con esto podemos usar métodos como mark() y reset() para poder rebobinar un stream